Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

Script para localizar tabelas sem Índice Clusterizado (HEAP)

Nessa postagem, irei disponibilizar um código bem útil para localizar tabelas que não possuem índice clusterizado.

As famosas tabelas HEAP.

Não vou entrar no mérito se é bom ou ruim ter uma tabela sem índice clusterizado nessa postagem, fica para um futuro post mais detalhado. O que posso adiantar é que na maioria das vezes não é um bom negócio.

-- ============================================= 
-- Author:       Bruno Perroni
-- Create date:  15/08/2018
-- Description:  Script para localizar tabelas sem indices clusterizados
-- ============================================= 

DECLARE @tbl TABLE (
	 ID INT IDENTITY(1, 1)
	,DBNome NVARCHAR(100)
	,SchemaNome NVARCHAR(100)
	,TabelaNome NVARCHAR(100)
	)
DECLARE @SQL NVARCHAR(MAX)

SELECT @SQL = '
       SELECT ''?'',ss.name, ts.Name
         FROM ?.sys.tables ts
 LEFT JOIN ?.sys.indexes si
           ON  ts.object_id = si.object_id
          AND  si.type = 1
		    INNER JOIN ?.sys.schemas ss on ts.schema_id = ss.schema_id
INNER JOIN ?. sys.databases d
              ON d.Name=''?'' AND d.name NOT IN ( ''tempdb'',''master'',''msdb'',''ReportServer'')
     WHERE  si.index_id IS NULL
       '

INSERT INTO @tbl
EXECUTE sp_MSforeachdb @SQL

SELECT DBNome
	  ,CONCAT (SchemaNome,'.',TabelaNome) Tabela
FROM @tbl
ORDER BY ID

 

Close Bitnami banner
Bitnami