Como reorganizar e reconstruir índices no MS SQL?

Os índices são os objetos dos arquivos de banco de dados do MS SQL. Esses objetos de esquema atuam como um índice do banco de dados. Eles são usados para melhorar as operações de recuperação de dados em uma tabela do banco de dados MS SQL.

No entanto, com o tempo, a tabela pode se fragmentar devido a operações contínuas de INSERT e UPDATE. Além disso, como outros objetos, os índices também são propensos à corrupção. Se os índices ficarem corrompidos, você pode receber erros como:

Plain Text

 

Para resolver os erros associados à corrupção nos índices ou quando o nível de fragmentação dos índices aumenta, você pode reconstruir ou reorganizar os índices. Neste artigo, discutiremos como reorganizar e reconstruir os índices no MS SQL Server. Também mencionaremos uma ferramenta avançada de reparo de banco de dados MS SQL que pode restaurar índices e outros objetos de arquivos de banco de dados SQL corrompidos rapidamente com total precisão.

Verifique a Percentagem de Fragmentação dos Índices

Antes de reorganizar os índices, você precisa saber a porcentagem de fragmentação. Você pode usar o comando abaixo para verificar a porcentagem da fragmentação do índice:

SQL

 

Reorganizando Índices no SQL Server

Se o nível de fragmentação do índice estiver entre 10 e 30, é recomendado reorganizar o índice. Você pode usar o seguinte código em T-SQL para reorganizar o índice:

SQL

 

Alternativamente, você pode usar o SQL Server Management Studio (SSMS) para reorganizar os índices. Siga os passos abaixo:

  • No SSMS, conecte-se à instância do seu servidor SQL.
  • No Explorador de Objetos, expanda o banco de dados.
  • Expanda a pasta Tabelas e depois a pasta Índices.
  • Clique com o botão direito no índice que deseja reorganizar e selecione Reorganizar.

Reconstruindo Índices no MS SQL

Se a fragmentação estiver alta, então você pode reconstruir os índices. Você pode usar o comando DBCC DBREINDEX para reconstruir um índice. Veja como executar este comando:

SQL

 

Este comando não suporta índices espaciais e índices de coluna armazenados em memória. 

Alternativamente, você pode usar o comando ALTER INDEX:

SQL

 

Você também pode reconstruir os índices usando a interface gráfica no SSMS. Aqui estão os passos:

  • No SSMS, no Explorador de Objetos, expanda o banco de dados que contém a tabela na qual você precisa reconstruir um índice.
  • Expanda a pasta Tabelas e depois a tabela na qual você precisa reconstruir um índice.
  • Expanda a pasta Índices, clique com o botão direito no índice que deseja reconstruir e selecione Reconstruir.

Reparar o Banco de Dados do SQL Server

Se reorganizar ou reconstruir os índices não funcionar, você pode tentar o comando DBCC CHECKDB com a opção REPAIR_ALLOW_DATA_LOSS para reparar o banco de dados. Veja como usar este comando:

Primeiro, altere o modo do banco de dados para SINGLE_USER usando o comando abaixo:

SQL

 

Em seguida, execute o comando DBCC CHECKDB conforme indicado abaixo para reparar o banco de dados:

SQL

 

Após a reparação, defina o modo do banco de dados para MULTI_USER executando o comando abaixo:

SQL

 

O comando DBCC CHECKDB acima pode ajudá-lo a resolver todos os erros relacionados à corrupção nos índices. Ele pode reparar tanto índices agrupados quanto não agrupados em bancos de dados SQL. No entanto, não garante a recuperação completa dos dados e pode resultar em perda de dados. Para evitar a perda de dados, você pode usar qualquer ferramenta profissional de reparo do MS SQL. Elas são projetadas com algoritmos avançados para recuperar todos os objetos, incluindo índices agrupados e não agrupados, procedimentos armazenados, gatilhos, etc., do banco de dados corrompido.

Conclusão

Você pode reduzir a fragmentação dos índices reorganizando ou reconstruindo o índice. Neste artigo, explicamos como verificar a porcentagem de fragmentação nos índices e como reconstruir os índices.

Source:
https://dzone.com/articles/reorganize-and-rebuild-indexes-in-ms-sql