Como Reorganizar e Reconstruir Índices no MS SQL?

Os índices são os objetos dos arquivos de banco de dados 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 de banco de dados MS SQL.

No entanto, com o tempo, a tabela pode ficar fragmentada devido a operações contínuas de INSERT e UPDATE. Além disso, assim como outros objetos, os índices também são suscetíveis a 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, vamos discutir 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 e com total precisão.

Verifique a Percentagem de Fragmentação dos Índices

Antes de reorganizar os índices, você precisa saber a percentagem de fragmentação. Você pode usar o comando abaixo para verificar a percentagem 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 SQL Server.
  • No Explorador de Objetos, expanda o banco de dados.
  • Expanda a pasta Tabelas e em seguida a pasta Índices.
  • Clique com o botão direito no índice que você precisa reorganizar e depois clique em Reorganizar.

Reconstruindo Índices no MS SQL

Se a fragmentação for 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 colunas armazenadas em memória otimizada. 

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 em seguida a tabela na qual você precisa reconstruir um índice.
  • Expanda a pasta Índices, clique com o botão direito no índice que você precisa reconstruir e selecione Reconstruir.

Reparar o Banco de Dados do SQL Server

Se reorganizar ou reconstruir os índices não funcionar, então você pode tentar o comando DBCC CHECKDB com a opção REPAIR_ALLOW_DATA_LOSS para reparar o banco de dados. Aqui está como usar esse 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 mostrado abaixo para reparar o banco de dados:

SQL

 

Após o reparo, defina o modo do banco de dados para MULTI_USER executando o comando abaixo:

SQL

 

O comando DBCC CHECKDB acima pode ajudar a resolver todos os erros relacionados à corrupção nos índices. Ele pode reparar índices agrupados e não agrupados em bancos de dados SQL. No entanto, não garante recuperação completa de dados e pode resultar em perda de dados. Para evitar a perda de dados, você pode usar ferramentas profissionais 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 de í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