none
Índices Não Utilizados, Script RRS feed

  • Pergunta

  • Bom dia a todos,

    Gostaria de saber se alguém possui algum script para identificar índices não utilizados pelo SQL Server, mas um que funcione.
    Estes dias executei um que tenho aqui, ele sugeriu alguns índices para remover e ao executar a tarefa BOOOM, as queries começaram a ficar lentas...e tive que voltar os índices removidos.

    Obrigado.
    sexta-feira, 13 de novembro de 2009 13:14

Respostas

  • declare @tabela varchar(max)
    
    set @tabela = 'TECR_PRODUTO_COMPLETO'
    
    SELECT object_name(a.object_id),a.index_id,b.name, a.user_seeks, a.user_scans, a.user_lookups, a.user_updates--,*
    FROM sys.dm_db_index_usage_stats a inner join sys.indexes b on a.object_id = b.object_id and a.index_id = b.index_id
    WHERE database_id = DB_ID() 
    AND a.object_id = OBJECT_ID(@tabela)
    
    
    exec sp_helpindex @tabela
    exec sp_spaceused @tabela
    Shonuff,

    Eu uso este, tem me atendido.



    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marcado como Resposta Fernanda Simões segunda-feira, 16 de novembro de 2009 16:45
    sexta-feira, 13 de novembro de 2009 13:22
    Moderador

Todas as Respostas

  • declare @tabela varchar(max)
    
    set @tabela = 'TECR_PRODUTO_COMPLETO'
    
    SELECT object_name(a.object_id),a.index_id,b.name, a.user_seeks, a.user_scans, a.user_lookups, a.user_updates--,*
    FROM sys.dm_db_index_usage_stats a inner join sys.indexes b on a.object_id = b.object_id and a.index_id = b.index_id
    WHERE database_id = DB_ID() 
    AND a.object_id = OBJECT_ID(@tabela)
    
    
    exec sp_helpindex @tabela
    exec sp_spaceused @tabela
    Shonuff,

    Eu uso este, tem me atendido.



    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marcado como Resposta Fernanda Simões segunda-feira, 16 de novembro de 2009 16:45
    sexta-feira, 13 de novembro de 2009 13:22
    Moderador
  • Marcelo,

    Obrigado!
    sexta-feira, 13 de novembro de 2009 13:32
  • Opa,

    Tenho usado um bem semelhante a esse do Marcelo.


    Só precisamos tomar um cuidado, essas DMVs são ZERADAS toda vez que o SQL Server é reiniciado! Dessa forma, se você rodar a query logo após o restart, a DMV vai estar pouco populada e vai indicar quase todos índices como não utilizados!

    Então, recomendo esperar pelo menos 1 semana com o servidor rodando para fazer esse tipo de consulta.


    Abraço!!

    Classifiquem as respostas. O Fórum agradece!!
    sexta-feira, 13 de novembro de 2009 13:41