quarta-feira, 14 de maio de 2014

Como reduzir espaço ocupado por bancos de dados SQL Server 2012 (recomendado para quem tem Windows Azure)

Código Transact-SQL para reconstruir os índices das tabelas a fim de reduzir ocupação de espaço em disco. Muito útil para quem possui bancos de dados no Windows Azure.


DECLARE @TableName varchar(255)

DECLARE TableCursor CURSOR FOR
(
      SELECT '[' + IST.TABLE_SCHEMA + '].[' + IST.TABLE_NAME + ']' AS [TableName]
      FROM INFORMATION_SCHEMA.TABLES IST
      WHERE IST.TABLE_TYPE = 'BASE TABLE'
)

OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0

BEGIN
      PRINT('Rebuilding Indexes on ' + @TableName)
      EXEC('ALTER INDEX ALL ON ' + @TableName + ' REBUILD')
      FETCH NEXT FROM TableCursor INTO @TableName
END

CLOSE TableCursor
DEALLOCATE TableCursor