Tendo executado sp_BlitzIndex no meu banco de dados, encontrei vários "Índices Agressivos" ( https://www.brentozar.com/blitzindex/sp_blitzindex-aggressive-indexes/ ). Não só, mas estou descobrindo que o número de "índices agressivos" está aumentando lentamente.
Eu sou um dev que se interessa pelo lado DBA das coisas e não consigo descobrir como ir das informações fornecidas pelo sp_BlitzIndex sobre índices agressivos para melhorá-los.
Estou bem em ajustar o desempenho de uma consulta individual, mas não sei como descobrir qual consulta pode estar acontecendo quando o índice fica agressivo e estou assumindo que os bloqueios estão acontecendo porque o servidor está sob carga - o que não t ser o caso se eu ajustar uma consulta individual.
Qualquer dica sobre como investigar mais seria apreciada.
Temos uma tonelada de recursos de aprendizado nessa página de Índices Agressivos (acabei de atualizá-la com mais, coincidentemente) e não consigo nem começar a fazer justiça a isso em geral. Dito isso, aqui vai.
Imagine que você tenha apenas um índice clusterizado em uma tabela. As inserções serão muito rápidas. No entanto, quando você tenta atualizar uma linha nessa tabela e não especifica a chave de clustering em sua cláusula where, acabará com muitos bloqueios de tabela (agressão). Nesse caso, a correção é adicionar índices para os campos que você consulta com frequência.
Por outro lado, imagine que você tenha dezenas de índices. Sempre que você quiser inserir ou excluir linhas, precisará de bloqueios em todos os lugares para realizar seu trabalho. O alto número de índices irá atrasá-lo porque ninguém pode fazer sua inserção ou exclusão rapidamente - e novamente, você verá avisos de índice agressivos. Nesse caso, a correção é reduzir o número de índices para um número mais gerenciável.
Geralmente, para tabelas transacionais (em oposição a carregamentos noturnos de data warehouse), digo às pessoas que busquem:
Essa regra de 5 e 5 pode ser violada - quanto menos atividade de gravação você tiver, e quanto mais rápido seu hardware for, e quanto melhor você ajustar suas consultas, mais você poderá obter mais índices. Por outro lado, se você tiver hardware e consultas ruins, talvez seja necessário diminuir esses números.
A regra 5 e 5 deriva do fato de que eu tenho que começar as pessoas em algum lugar, e eu tenho 5 dedos em uma mão e 5 dedos na outra - então a regra é fácil de comunicar.