A visualização do sistema sys.dm_db_index_usage_stats
possui diversas colunas que refletem o uso do índice pelas consultas do sistema. Mas o que isso significa? Por que o sistema consulta minha tabela?
A documentação não é particularmente útil:
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
sistema_seeks | grande | Número de buscas por consultas do sistema. |
verificações_do_sistema | grande | Número de verificações por consultas do sistema. |
pesquisas_de_sistema | grande | Número de pesquisas por consultas do sistema. |
atualizações do sistema | grande | Número de atualizações por consultas do sistema. |
sys.dm_db_missing_index_group_stats
documenta isso comoUma maneira de gerar alguns
system_seeks
estásystem_scans
abaixo.Não tenho certeza se existem outros cenários (além das estatísticas filtradas) em que você pode acabar com uma
system_seek
tabela de usuário.Não consigo pensar em nenhuma razão para que isso aconteça, mas alguém mais inteligente do que eu pode ser capaz de evocar um caso de uso...
...E alguém mais inteligente do que eu prevaleceu. A manutenção de estatísticas é um processo do sistema que lê tabelas de usuários. Isso faria com que
system_seeks
ousystem_scans
aumentasse esse DMV para um índice em uma tabela de usuário.Existem tabelas de sistema na instância do banco de dados. Algumas dessas tabelas também podem ser indexadas. Os processos do sistema que consultam essas tabelas provavelmente resultariam em um plano de execução que aproveitasse os índices nelas contidos. É para isso que servem as colunas
system_seeks
,system_scans
, etc dosys.dm_db_index_usage_stats
DMV.