Recentemente me perguntaram como encontrar quais são os objetos mais utilizados no SQL Server para uso de acompanhamento dessas tabelas, estatísticas e fragmentação dos índices.
Existem algumas consultas que já tem essas informações que e eu montei duas aqui que são bem interessantes que acredito que estejam de acordo com o que você está procurando. Lembrando que você deverá alterar alguns parâmetros como MyDatabase.
-- Quais são as tabelas mais utilizadas no SQL Server USE MyDatabase GO SELECT DB_NAME(ius.database_id) AS BancoDeDados, t.NAME AS Tabela, SUM(ius.user_seeks + ius.user_scans + ius.user_lookups) AS QuantidadeDeAcessos FROM sys.dm_db_index_usage_stats ius INNER JOIN sys.tables t ON t.OBJECT_ID = ius.object_id WHERE database_id = DB_ID('MyDatabase') GROUP BY database_id, t.name ORDER BY SUM(ius.user_seeks + ius.user_scans + ius.user_lookups) DESC
-- Quais são os índices mais utilizadas no SQL Server USE MyDatabase GO SELECT DB_NAME(ius.database_id) AS BancoDeDados, t.NAME AS NomeDaTabela, i.NAME AS NomeDoIndex, i.type_desc AS TipoDoIndex, ius.user_seeks + ius.user_scans + ius.user_lookups AS NumerosDeacessos FROM sys.dm_db_index_usage_stats ius INNER JOIN sys.indexes i ON i.OBJECT_ID = ius.OBJECT_ID AND i.index_id = ius.index_id INNER JOIN sys.tables t ON t.OBJECT_ID = i.object_id WHERE database_id = DB_ID('MyDatabase') ORDER BY ius.user_seeks + ius.user_scans + ius.user_lookups DESC