Tudo bem pessoal. Nesse artigo irei trazer um comando muito útil para o tuning de queries.
SET STATISTICS IO ON/OFF
Ai você me pergunta, o que diabos é isso de SET STATISTICS IO.
Bom nada mais é do que forçar o SQL Server a exibir informações referentes à quantidade de atividade em disco gerada pelas instruções Transact-SQL.
Abaixo podemos ver como é feita a sua utilização.
Temos uma query que realiza joins entre tabelas, com muitos registros e com o SET STATISTICS IO ON podemos verificar quais tabelas estão sofrendo maior quantidade de leitura seja logica ou física.
SET STATISTICS IO ON USE AdventureWorks2014 GO SELECT TOP 100000 * FROM Production.TransactionHistory th INNER JOIN Production.TransactionHistoryArchive tha ON th.Quantity = tha.Quantity INNER JOIN Production.Product P ON P.ProductID = th.ProductID INNER JOIN Production.ProductReview PR ON P.ProductID = PR.ProductID SET STATISTICS IO OFF
Percebam que aparecem algumas informações na aba Messages do SSMS, essas informações podem nos dar um ponto de partida para melhorar a consulta.
Scan Count:
0 = Índice exclusivo ou índice clusterizado em uma chave primária foi utilizado;
1 = Índice clusterizado não exclusivo que é definido em uma coluna de chave não primária.
Logical Reads: É quando o SQL recupera a informação do buffer (Mémoria)
Physical Reads: É o SQL indo até o disco para recuperar a informação.
Read-ahead Reads: Número de páginas que foram colocadas no cache.