Olá pessoal,
Esta é uma dica bem rápida, mas que com certeza pode ser muito útil, pra você que esta fazendo uma manutenção na sua base SQL Server.
Como executar o DBCC DBREINDEX pra todas as tabelas na nossa base de dados?
Antes de colocar o código, algumas comentários.
Segundo a documentação o DBCC DBREINDEX recria um ou mais índices de uma tabela no banco de dados especificado.
Outra informação importante no site da MSDN: Esse recurso será removido em uma versão futura do Microsoft SQL Server. Não utilize esse recurso em desenvolvimentos novos e modifique, assim que possível, os aplicativos que atualmente o utilizam. Use ALTER INDEX.
Para maiores detalhes visite - http://msdn.microsoft.com/en-us/library/ms181671.aspx.
O código que executaremos irá usar uma dica ja utilizada aqui no ninja code, que é como utilizar a procedure SP_MSFOREACHTABLE.
Veja a postagem: #QuickTip 4 - [SQL Server] Como executar um select count em todas as tabelas de uma base de dados
Seguem os dois modos de executar o script:
-
- EXEC SP_MSFOREACHTABLE @COMMAND1="PRINT '?' DBCC DBREINDEX ('?', ' ', 80)"
-
- EXEC SP_MSFOREACHTABLE 'PRINT ''?'' DBCC DBREINDEX (''?'', '' '', 80)'
--Recompilar todos os indexes de todas as tabelas da base de dados
EXEC SP_MSFOREACHTABLE @COMMAND1="PRINT '?' DBCC DBREINDEX ('?', ' ', 80)"
--OU
EXEC SP_MSFOREACHTABLE 'PRINT ''?'' DBCC DBREINDEX (''?'', '' '', 80)'
Espero que tenha sido útil.
Até a próxima.
Falou-lhes, pois, Jesus outra vez, dizendo: Eu sou a luz do mundo; quem me segue não andará em trevas, mas terá a luz da vida. (João 8:12)
Tags: sqlserver, SQL Server 2005, sql, SP_MSFOREACHTABLE, DBCC DBREINDEX