Oi pessoal.
Fechei hoje minha participação no TechEd Brasil 2010 como apresentador, foram 3 sessões em menos de 24 horas (todas entregues em 21:45h para ser preciso) e agora é hora de relaxar e aproveitar o resto do evento.
Como prometido, vou postar aqui os slides da minha apresentação e também os projetos/scripts que utilizei ao longo das sessões. E vou começar de trás para frente, para matar uma agonia pessoal.
Pegue aqui o PDF e script da demo.
Aproveitando, uma pequena demonstração e uma errata...
Primeiro a errata, que está me matando.
Durante a apresentação me perguntaram se o sp_recompile têm o mesmo efeito que o WITH RECOMPILE. Respondi que sim e continuei a palestra, mas meu processamento em background ficou me cutucando: "acho que você falou merda". E realmente falei besteira, o comportamento é diferente e o sp_recompile resolve nosso problema para tirar a procedure do plan cache.
Dito isso e mais aliviado, vamos a outro item que não tive tempo de detalhar, quando estava falando em auto parametrização eu troquei o script (já corrigi neste post) e acabei executando uma consulta que é auto parametrizada.
SELECT OrderID, CustomerID, EmployeeID, OrderDate FROM dbo.Orders WHERE OrderID >= 11071
Essa consulta é auto parametrizada pois independente do que você passe para o SQL Server, ele irá fazer um range scan, apesar dele somente mostrar um index seek no plano (não vemos o detalhe do range scan). Então se vocês olharem o STATISTICS IO e os planos das consultas que retornam os 830 registros, verão que o SCAN completo e o index seek, ambos farão uma leitura de 22 páginas.
dbcc freeproccache
SELECT OrderID, CustomerID, EmployeeID, OrderDate FROM dbo.Orders WHERE OrderID >= 11071
SELECT * FROM dbo.Orders
SELECT OrderID, CustomerID, EmployeeID, OrderDate FROM dbo.Orders WHERE OrderID >= 10248
Também deixo aqui uma brincadeira, para aqueles que querem navegar pela estrutura dos índices e acompanhar o range scan. :-)
SELECT * FROM sys.sysindexes where id = OBJECT_ID('Orders')
-- ROOT: 0x350100000100
-- First: 0x1B0100000100
SELECT DB_ID()
DBCC TRACEON(3604)
DBCC PAGE (6, 1, 283, 3)
-- 283
-- 310
-- 348
DBCC IND (Northwind, Orders, 1)
-- Filtragem dos 8 registros
DBCC TRACEON(3604)
DBCC PAGE (6, 1, 348, 3)
Até daqui a pouco.
[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br
Acontece com os melhores apresentadores. Ma suas 3 apresentações forma ótimas, como sempre.... PARABÉNS!
ResponderExcluirLuciano , foi eu que perguntei e após a sua resposta , pensei comigo , venho executando este procedimento a uns 6 anos ou mais rs..rs..rs..e agora que eu descobri que não é o que eu achava..rs.rs...foi como você falar a uma criança que Papai noel não existe..rs..rs..Mas ainda bem que era engano. Sua apresentação foi uma das melhores do evento .Abs. Régis
ResponderExcluir