Skip to content

Softshop > Desempenho: SISTEMA LENTO

Software: SOFTSHOP | Grupo: SOFTSHOP > ANALISE

Solução

Um dos motivos de sistema lento no Organizar estoque são os índices desfragmentados no banco SQL.

O script abaixo vai executar o comando REBUILD em todos os índices de todas as tabelas de todos os bancos (exceto bancos padrão do SQL Server), recriando automaticamente todos os indices

1 - Abra o SQL Management Studio

2 - Clique em "Nova Consulta"

3 - Copie e cole na consulta o seguinte Script:

DECLARE @Database NVARCHAR(255)

DECLARE @Table NVARCHAR(255)

DECLARE @cmd NVARCHAR(1000)

DECLARE DatabaseCursor CURSOR READ_ONLY FOR

SELECT name FROM master.sys.databases

WHERE name NOT IN ('master','msdb','tempdb','model','distribution')

AND state = 0

AND is_in_standby = 0

ORDER BY 1

OPEN DatabaseCursor

FETCH NEXT FROM DatabaseCursor INTO @Database

WHILE @@FETCH_STATUS = 0

BEGIN

SET @cmd = 'DECLARE TableCursor CURSOR READ_ONLY 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

BEGIN TRY

SET @cmd = 'ALTER INDEX ALL ON ' + @Table + ' REBUILD'

EXEC (@cmd)

END TRY

BEGIN CATCH

PRINT '---'

PRINT @cmd

PRINT ERROR_MESSAGE()

PRINT '---'

END CATCH

FETCH NEXT FROM TableCursor INTO @Table

END

CLOSE TableCursor

DEALLOCATE TableCursor

FETCH NEXT FROM DatabaseCursor INTO @Database

END

CLOSE DatabaseCursor

DEALLOCATE DatabaseCursor

4 - Clique em Executar e aguarde o término da consulta.


Tags: lento, indice, orgamizar, estoque

Documentação de Testes