Estatisticas é a area de Banco de Dados mais deixada de lado, embora seja uma das que mais afetam a performance de um Banco de dados. Não adianta ter um servidor parrudo, todos os indices criados , consultas bem escritas , se as estatisticas estiverem desatualizadas.
Isso acontece porque as estatisticas é o que indicara qual é o melhor caminho para uma consulta, qual indice utilizar, se será usado realizado um seek em determinado indice, scan ou um table scan .
Por exemplo se uma tabela tem 30 milhões de registros mas as estatisticas dizem que tem 300 mil. Uma consulta que traga 50 mil registros será tratada totalmente diferentes nos dois casos, pois o SQL Server tem uma regra que se o resultado da consulta trouxer mais de 30% do total da tabela será realizado um table Scan , do contrário será analisado a possiblidade de utilizar algum indice. Por isso com as estatisticas desatualizadas seria realizado um table Scan , já com a estatistica atualizada seria utilizado provavelmente um index seek.
Sempre quando tiver problema de performance verifique as estatisticas, e é claro tenha um plano de manutenção semanal para atualiza-las manualmente não confie na atualização automatica do SQL.
Checando Estatisticas
SELECT OBJECT_name(OBJECT_ID) Tabela, name AS Indice, STATS_DATE(OBJECT_ID, index_id) AS DataAtualizado
FROM sys.indexes where is_hypothetical = 0
AND OBJECT_name(OBJECT_ID) NOT LIKE ‘sys%’ ORDER BY OBJECT_name(OBJECT_ID)
Atualizando Estatistica
UPDATE STATISTICS NomeTabela WITH fullScan
Links Sobre Estatisticas
http://technet.microsoft.com/en-us/library/cc966419.aspxhttp://www.sqlskills.com/BLOGS/KIMBERLY/category/Statistics.aspx
http://blog.sqlauthority.com/2010/04/23/sql-server-update-statistics-are-sampled-by-default-2/
http://www.sqldev.org/transactsql/obtaining-statistics-metadata-58567.shtml