Me pediram a quase um ano atrás uma consulta simples que recuperasse as informações de quantos índices, colunas e linhas existem em cada tabela de um banco de dados do SQL Server, também se os registros estavam armazenado em HEAP ou CLUSTERED.
Na época, eu fiz a consulta, mas esqueci de compartilhar aqui no site, espero que gostem dela:
SELECT s.name as [schema], t.name as [table] , ix.[indexes] , c.[columns] , p.[rows] , i.[type_desc] FROM sys.schemas s INNER JOIN sys.tables t ON t.[schema_id] = s.[schema_id] -- Contagem de linhas [rows] INNER JOIN sys.indexes i ON i.[object_id] = t.[object_id] INNER JOIN sys.partitions p ON p.[object_id] = t.[object_id] AND p.[index_id] = i.[index_id] -- Contagem de colunas [columns] CROSS APPLY ( SELECT COUNT(*) AS [columns] FROM sys.columns c WHERE c.[object_id] = t.[object_id] ) c -- Contagem de índices [indexes] CROSS APPLY ( SELECT COUNT(*) AS [indexes] FROM sys.indexes ix WHERE ix.[object_id] = t.[object_id] AND ix.type NOT IN (0,1) ) ix WHERE i.[type] IN (0,1) ORDER BY [schema], [table]
Exemplo de execução:

Muito bom..parabens me ajudou 100%
mto bom!!!