Loading…

Azure SQL Database – Monitorando a Utilização dos Índices

 

Fala Pessoal,

Continuando a série de posts sobre Azure SQL Database, dessa vez vamos criar uma rotina para que você possa monitorar a utilização dos índices no SQL do Azure.

No Azure SQL Database você pode ativar uma opção para que o SQL te sugira ou exclua índices automaticamente. Ativando a opção de exclusão automática, o SQL no Azure irá excluir seu índice quando ele ficar mais de 90 dias sem uso (seek ou scan) e com inserts/updates/deletes sendo realizados nesse índice.

Referência: https://sqlperformance.com/2018/04/azure/automatic-index-management-in-azure-sql-database

Caso não queira que o Azure exclua seus índices sem uso automáticamente OU caso queira fazer uma verificação dupla antes dele excluir OU caso queira excluir um índice com menos tempo (1 ou 2 meses), você terá que fazer um monitoramento próprio para isso.

Caso queira ter esse controle, vou compartilhar essa rotina com vocês.

Ela cria algumas tabelas para armazenar as informações, uma view para visualizar os dados e uma procedure de carga para inserir os registros nas tabelas.

Segue o script completo no nosso Github:

Script rotina monitorar a utilização de indices

Após criada as tabelas, a view e a procedure do script acima, basta agendar a procedure stpCarga_Utilizacao_Indice no azure 1 vez por dia.

Nesse post abaixo mostrei como você pode fazer esse agendamento:

https://www.fabriciolima.net/blog/2018/08/13/azure-sql-database-como-criar-um-job-para-executar-uma-procedure/

Após executar uma vez a procedure de carga, já temos as informações que precisamos conforme pode ser visto abaixo:

select top 5 *
from vwHistorico_Utilizacao_Indice
order by User_Scans desc

Segue o resultado com os 5 índices que mais tem Scan no meu banco de teste.

 

Pronto. Agora você consegue analisar como está a utilização dos seus índices e ver quais índices estão sem uso por um determinando tempo para poder excluí-los.

Essa foi mais uma dica de como você pode fazer algo por suas bases no Azure SQL Database.

Até a próxima.

Posts relacionados sobre o Azure SQL Database:

  1. Azure SQL Database – Função getdate() com valor errado no Azure. É isso mesmo?
  2. Azure SQL DB Managed Instance – Introdução
  3. Azure SQL Database – Como fazer um join entre tabelas de bases diferentes?
  4. Azure SQL Database – Quanto posso usar de Transaction Log? É ilimitado?
  5. Azure SQL Database – Como criar um Job para executar uma procedure?
  6. Azure SQL Database – Monitorando o Tamanho das Tabelas
  7. Azure SQL Database – Monitorando a Fragmentação dos Índices

Gostou da dica?

Curta, comente, compartilhe com os coleguinhas…

Assine meu canal no Youtube e curta minha Página no Facebook para receber Dicas de Leituras e Eventos sobre SQL Server.

Abraços,

Fabrício Lima

Microsoft Data Platform MVP

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

2 thoughts on “Azure SQL Database – Monitorando a Utilização dos Índices

Deixe uma resposta para Tàssio CarliniCancelar resposta

%d blogueiros gostam disto: