«

»

jun 15

Identificando tabelas mais usadas da instância

Considero este um dos posts mais importantes que já escrevi. Frequentemente precisamos saber qual a tabela mais utilizada ou qual o índice mais utilizado para tomarmos as providências de melhoria na performance como criar um arquivo de dados exclusivo para a tabela, verificar se o índice está apropriado, etc.

Esta semana vimos no artigo Encontrando usuários e suas sessões no SQL as DMVs (Dynamic Management Views). Hoje vamos utilizar mais uma DMV para sabermos quais índices são mais utilizados chamada sys.dm_db_index_usage_stats. Esta DMV nos dá uma série de informações importantes, separamos as mais importantes através da query abaixo:

 

select so.name as table_name,b.name as index_name,*
from sys.dm_db_index_usage_stats ps
inner join sysobjects so
on so.id = ps.object_id
INNER JOIN sys.indexes b
ON ps.Object_id = b.OBJECT_ID
order by user_seeks desc

 

O resultado desta query é:

 

 

De acordo com as utilizações dos índices, é possível afirmarmos que a tabela ProductInventory é a mais utilizada, seguida pela Product. Eu fiz um robô que fez select nestas tabelas e está confirmado que realmente funciona.

 

Agora você pode afirmar com respaldo que é melhor colocar estas tabelas em arquivos de dados separados ou em LUNs separadas para obter alguma performance caso esteja tendo problemas de I/O, por exemplo..

1 comentário

  1. Angelo Maximo

    Muito bom Mercante, esse tipo de informação ajuda muito no momento de identificar o status das tabelas e tomar ações corretivas.
    Parabéns.

Deixe uma resposta