sys.dm_db_index_usage_stats (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
Retorna contas de tipos diferentes de operações de índice e a hora em que cada tipo de operação foi executada pela última vez.
No Banco de Dados SQL do Azure, as exibições de gerenciamento dinâmico não podem expor informações que afetariam a contenção do banco de dados ou expor informações sobre outros bancos de dados aos quais o usuário tem acesso. Para evitar a exposição dessas informações, todas as linhas que contêm dados que não pertencem ao locatário conectado são filtradas.
Observação
A DMV sys.dm_db_index_usage_stats
não retorna informações sobre índices com otimização de memória ou índices espaciais. Para obter informações sobre o uso de índice com otimização de memória, consulte sys.dm_db_xtp_index_stats (Transact-SQL).
Observação
Para chamar essa exibição do Azure Synapse Analytics ou do PDW (Analytics Platform System), use sys.dm_pdw_nodes_db_index_usage_stats
. Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
database_id | smallint | ID do banco de dados no qual a tabela ou exibição é definida. No Banco de Dados SQL do Azure, os valores são exclusivos em um único banco de dados ou em um pool elástico, mas não em um servidor lógico. |
object_id | int | ID da tabela ou exibição na qual o índice é definido. |
index_id | int | ID do índice. |
user_seeks | bigint | Número de buscas através de consultas de usuário. |
user_scans | bigint | Número de verificações por consultas de usuário que não usaram o predicado 'seek'. |
user_lookups | bigint | Número de pesquisas de indicador através de consultas de usuário. |
user_updates | bigint | Número de atualizações através de consultas de usuário. Isso inclui Inserir, Excluir e Atualizações que representam o número de operações realizadas, não as linhas reais afetadas. Por exemplo, se você excluir 1000 linhas em uma instrução, essa contagem será incrementada em 1 |
last_user_seek | datetime | Hora da última busca de usuário. |
last_user_scan | datetime | Hora do último exame de usuário. |
last_user_lookup | datetime | Hora da última pesquisa de usuário. |
last_user_update | datetime | Hora da última atualização de usuário. |
system_seeks | bigint | Número de buscas através de consultas do sistema. |
system_scans | bigint | Número de exames através de consultas do sistema. |
system_lookups | bigint | Número de pesquisas através de consultas do sistema. |
system_updates | bigint | Número de atualizações através de consultas do sistema. |
last_system_seek | datetime | Hora da última busca do sistema. |
last_system_scan | datetime | Hora do último exame do sistema. |
last_system_lookup | datetime | Hora da última pesquisa do sistema. |
last_system_update | datetime | Hora da última atualização do sistema. |
pdw_node_id | int | Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW) O identificador do nó em que essa distribuição está ativada. |
Comentários
Cada busca, exame, pesquisa ou atualização individual no índice especificado pela execução de uma consulta é contado como um uso desse índice e incrementa o contador correspondente nessa exibição. As informações são relatadas para operações causadas por consultas enviadas pelo usuário e operações causadas por consultas geradas internamente, como exames de coleta de estatísticas.
A user_updates
coluna é um contador de manutenção no índice causado por operações de inserção, atualização ou exclusão na tabela ou exibição subjacente. Você pode usar essa exibição para determinar quais índices são pouco usados por seus aplicativos. Também é possível usar a exibição para determinar quais índices estão incorrendo em sobrecarga de manutenção. Se desejar, você pode descartar índices que incorrem em sobrecarga de manutenção, mas são pouco usados para consultas ou não são usados.
Os contadores são inicializados para esvaziar sempre que o mecanismo de banco de dados é iniciado. Use a coluna sqlserver_start_time
em sys.dm_os_sys_info para localizar a última hora de inicialização do mecanismo de banco de dados. Além disso, sempre que um banco de dados é desanexado ou desligado (por exemplo, porque AUTO_CLOSE está definido como ON), todas as linhas associadas a ele são removidas.
Quando um índice é usado, uma linha é adicionada se sys.dm_db_index_usage_stats
ainda não existir uma linha para o índice. Quando a linha é adicionada, seus contadores são definidos como zero inicialmente.
Durante a atualização para o SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) ou SQL Server 2014 (12.x), as entradas são sys.dm_db_index_usage_stats
removidas. A partir do SQL Server 2016 (13.x), as entradas são mantidas como eram antes do SQL Server 2008 R2 (10.50.x).
Permissões
No SQL Server e na Instância Gerenciada de SQL, requer a permissão VIEW SERVER STATE
.
Nos objetivos de serviço do Banco de Dados SQL Básico, S0 e S1 e para bancos de dados em pools elásticos, é necessário ter a conta do administrador do servidor, a conta do administrador do Microsoft Entra ou a associação à ##MS_ServerStateReader##
função de servidor. Em todos os outros objetivos de serviço do Banco de Dados SQL, a permissão VIEW DATABASE STATE
no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##
são necessárias.
Permissões do SQL Server 2022 e posteriores
É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Confira também
Exibições e funções de gerenciamento dinâmico relacionadas ao índice (Transact-SQL)
sys.dm_db_index_physical_stats (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)
sys.indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)
Monitorar e ajustar o desempenho