Abaixo segue um script que executa o rebuild em uma determinada database, este script foi desenvolvido pelo meu colega de trabalha Marcelo, este script resolveu um problema de um sistema de biblioteca, onde as buscas demoravam muito, após executar o script a performance do sistema melhorou em muito.
DECLARE @Database VARCHAR ( 255 )
DECLARE @Table VARCHAR ( 255 )
DECLARE @cmd NVARCHAR ( 500 )
DECLARE DatabaseCursor CURSOR FOR
SELECT name FROM master.dbo.sysdatabases
WHERE name IN ( 'minhadatabase')
ORDER BY 1
OPEN DatabaseCursor
FETCH NEXT FROM DatabaseCursor INTO @Database
WHILE @@FETCH_STATUS = 0
BEGIN
SET @cmd = 'DECLARE TableCursor CURSOR FOR SELECT table_catalog + ''.'' + table_schema + ''.'' + table_name as tableName
FROM ' + @Database + '.INFORMATION_SCHEMA.TABLES WHERE table_type = ''BASE TABLE'''
EXEC ( @cmd )
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @Table
WHILE @@FETCH_STATUS = 0
BEGIN
SET @cmd = 'ALTER INDEX ALL ON ' + @Table + ' REBUILD ' -- WITH (FILLFACTOR = ' + CONVERT ( VARCHAR ( 3 ), @fillfactor ) + ')'
EXEC ( @cmd )
FETCH NEXT FROM TableCursor INTO @Table
END
CLOSE TableCursor
DEALLOCATE TableCursor
FETCH NEXT FROM DatabaseCursor INTO @Database
END
CLOSE DatabaseCursor
DEALLOCATE DatabaseCursor
Nenhum comentário:
Postar um comentário