DBCC SHOWCONTIG
- introduzido no SQL Server 2000sys.dm_db_index_physical_stats
- introduzido no SQL Server 2005
Pergunta: É errado considerar a densidade de varredura como uma métrica de desempenho em versões superiores do SQL Server além do SQL Server 2000? Estou procurando uma resposta se a densidade de SCAN era ou não algo com o qual devemos nos preocupar em versões superiores do SQL Server (> SQL Server 2000), pois essa métrica foi lançada em DMVs e funções.
Background: Eu tenho um requisito para manter a densidade de varredura de mais de 90% no meu banco de dados SQL Server (SQL Server 2016) como parte do requisito do fornecedor.
No entanto, posso ver no site da Microsoft, DBCC SHOWCONTIG
como um recurso obsoleto que será removido em versão futura do SQL Server e não vejo a coluna SCAN DENSITY em função sys.dm_db_index_physical_stats
(que é a substituição de DBCC SHOWCONTIG
).
Exemplo:
Para uma das minhas tabelas com 12954223 linhas, abaixo estão as estatísticas do índice clusterizado (contagem de páginas - 830943) com consultas diferentes:
Com DBCC SHOWCONTIG
:
Scan density - 76.11 %[103868:106468]
Logical scan fragmentation - 4.68%
Comsys.dm_db_index_physical_stats
avg_page_space_used_in_precent - 92.84 %
agg_fragmentation_in_precent - 4.68%
Densidade de varredura é quantas vezes você pula de uma extensão para outra (dividindo o "ótimo" para o estado atual). A coisa é que isso é um efeito colateral da fragmentação lógica (pule para frente e para trás entre as páginas e é provável que você pule para frente e para trás entre as extensões). Quando o DBCC foi refeito em um DMV, Paul limpou muitas coisas lá.
Eu sugiro que você trabalhe com frag lógico (avg frag em porcentagem), se você se importa com a forma como as coisas são contíguas em primeiro lugar. Talvez mais interessante seja como as páginas completas são, já que E/S aleatória vs sequencial é provavelmente mais ou menos irrelevante com hardware moderno (leitura antecipada deixada de lado).
Paul fala fortemente sobre como devemos parar de usar o antigo DBCC e usar o DMV. Faça algumas pesquisas e você encontrará muitas pepitas boas por aí. Aqui está um tópico que pode fornecer alguns insights, por exemplo: https://social.microsoft.com/Forums/partner/en-US/8d01a374-1493-43c3-8cea-5bf5de723b4d/dmdbindexphysicalstats-and-dbcc-showcontig- disparidade .