SQL server Rebuild vs Reorganize

SQL Server Rebuild vs Reorganize

SQL Server Rebuild vs Reorganize, en SQL Server, es posible realizar tanto un rebuild como un reorganize sobre los índices. Estas son operaciones relacionadas con el mantenimiento de los índices en la base de datos, y ambas tienen el objetivo de mejorar el rendimiento de las consultas optimizando los índices. Sin embargo, funcionan de manera diferente y se utilizan en diferentes situaciones dependiendo del grado de fragmentación de los índices.

1. Rebuild (Reconstruir Índices)

  • Qué hace: El comando rebuild crea un índice completamente nuevo desde cero, eliminando el índice existente y reconstruyéndolo. Este proceso reorganiza los datos físicamente en las páginas de datos de la base de datos, eliminando cualquier fragmentación.
  • Cuándo usarlo: Se recomienda realizar un rebuild cuando la fragmentación de un índice es superior al 30%.
  • Efecto en el sistema: Esta operación es más intensiva que el reorganize, ya que requiere más recursos (CPU, memoria, disco) y bloquea el índice durante la operación, aunque en las versiones recientes de SQL Server, se puede realizar un rebuild en línea para reducir el impacto.
Comando:

sql

ALTER INDEX nombre_del_indice
ON nombre_de_la_tabla
REBUILD;
  • Pros:
    • Elimina completamente la fragmentación.
    • Compacta las páginas de datos.
  • Contras:
    • Consume más recursos.
    • Puede bloquear el acceso a los datos durante la operación.

2. Reorganize (Reorganizar Índices)

  • Qué hace: El comando reorganize realiza una reorganización de los fragmentos de un índice existente. Es una operación menos agresiva que el rebuild, ya que solo reorganiza los datos dentro de las páginas existentes en lugar de recrear el índice desde cero. Reorganize también compacta los niveles del índice.
  • Cuándo usarlo: Se recomienda hacer un reorganize cuando la fragmentación es entre el 5% y 30%.
  • Efecto en el sistema: Es una operación menos intensiva y se puede realizar sin bloquear el índice, permitiendo que las consultas sigan ejecutándose.
Comando:

ALTER INDEX nombre_del_indice
ON nombre_de_la_tabla
REORGANIZE;
  • Pros:
    • Consume menos recursos y no bloquea el índice.
    • Se puede realizar mientras los usuarios acceden a los datos.
  • Contras:
    • No elimina completamente la fragmentación, solo la reduce.

Cuándo usar Rebuild vs Reorganize

  • Menos del 5% de fragmentación: No se necesita mantenimiento.
  • Entre 5% y 30% de fragmentación: Es recomendable hacer un reorganize.
  • Más del 30% de fragmentación: Se recomienda hacer un rebuild.

Ver fragmentación de los índices

Antes de decidir si hacer un rebuild o reorganize, es útil medir el nivel de fragmentación con la siguiente consulta:

SELECT 
    dbschemas.[name] AS 'Schema',
    dbtables.[name] AS 'Table', 
    dbindexes.[name] AS 'Index', 
    indexstats.avg_fragmentation_in_percent
FROM 
    sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) AS indexstats
    INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]
    INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]
    INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]
    AND indexstats.index_id = dbindexes.index_id
WHERE 
    indexstats.database_id = DB_ID()
    AND dbindexes.[name] IS NOT NULL
ORDER BY 
    avg_fragmentation_in_percent DESC;

Resumen:

  • Rebuild: Ideal para fragmentación >30%, más intensivo, elimina completamente la fragmentación.
  • Reorganize: Para fragmentación entre 5%-30%, menos intensivo, no elimina toda la fragmentación, pero es más rápido y amigable para el sistema.

Guía Completa para Implementar FULLTEXT en SQL

EXEC sp_change_users_login SQL SERVER

Para que una tabla tenga FULLTEXT SQL

Procedimientos Almacenados Temporales en SQL Server

Tutorial completo Data Migration Assistant SQL Server

Extracción de las Vistas en SQL Server

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.

error: Contenido protegido :)