DBAUncategorized

Rebuild o Reorganize: Cuando utilizar Rebuild o Reorganize ser o no ser

Ser o no ser (Rebuild o Reorganize)

 Rebuild o Reorganize, Ser o no ser… es la primera línea de un soliloquio de la obra de William Shakespeare Hamlet (escrita alrededor de 1600), en el acto tercero, escena primera. Considerada y usada como síntesis de los procesos mentales de indecisión y duda
Efectivamente si duda es lo que tienes querido lector entre cuando recostruir un indice o regorganizarlo, nada mejor que una breve explicacion para saber cuando Ser o no ser, no sere el William Shakespeare del SQL, sino un mas del monto que tenia la misma duda y pense que aclararlo a mis colegas es la mejor manera de sentir un momento Shakespeariano
Rebuild vs Reorganize Como su nombre indica regenera la estructura del índice completamente. En el caso de los índices agrupados (clustered index) es mucho más óptimo que eliminar el índice (drop index) y volver a crearlo (create index), pues los índices no agrupados sólo se reconstruirán una única vez en lugar de dos. La sentencia “Alter index rebuild”  pretende sustituir a “DBCC DBREINDEX” ya que desaparecerá en futuras versiones.
Reconstruir un índice es una operación atómica, esto es, si se interrumpe habrá que comenzar de nuevo. Desde SQL Server 2005, y al utilizar “Alter Index”, se puede realizar con conexión (opción ONLINE=ON, manteniendo el acceso de los usuarios) o sin conexión. Se necesita disponer de espacio suficiente y admite paralelismo.
Cuando se reconstruye un índice se recalculan las estadísticas. El motivo por el que SQL Server hace esto es que ya que tiene que leerse todas las páginas del índice aprovecha esa lectura para tomar los datos de estadísticas y actualizarlos. Si se hiciera aparte tendría que hacerse otra pasada adicional por todas las páginas.
Calcular la fragmentacion de mis indices

Los campos importantes son:

 Avg_fragmentation_in_percent, determina si el índice contiene fragmentación externa
  • Avg_page_space_used_in_percent, muestra la fragmentación interna
  • En base a estos campos podemos establecer los siguientes límites:
  • Si la fragmentación externa es mayor que el 10% (Avg_fragmentation_in_percent > 10) se aconseja reorganizar (Alter index Reorganize)
  • Si la fragmentación interna es menor que el 75% (Avg_page_space_used_in_percent < 75) se aconseja reorganizar (Alter index Reorganize)
  • Si la fragmentación externa es mayor que el 15% (Avg_fragmentation_in_percent > 15) se aconseja reconstruir (Alter index Rebuild)
  • Si la fragmentación interna es menor que el 60% (Avg_page_space_used_in_percent <60) se aconseja reconstruir (Alter index Rebuild)

Existen distintos tipos de fragmentación. Las que afectan a SQL Server son la fragmentación lógica y la fragmentación de extensión. Otra clasificación es la fragmentación externa e interna

Como recurso adicional puedes implementar un reporte personalizado dentro del SSMS el cual nos indique la fragmentacion de nuestra bade de datos de una forma amigable

para implementar dicho reporte lo pueden descargar haciendo click AQUI y para implementarlo leen el articulo http://sql-listo.com/uncategorized/como-anadir-un-reporte-personalizado/

6 comentarios en « Rebuild o Reorganize: Cuando utilizar Rebuild o Reorganize ser o no ser»

Deja una respuesta

WP to LinkedIn Auto Publish Powered By : XYZScripts.com