¿Cómo conocer el porcentaje de fragmentación para los índices en tablas de Microsoft Dynamics AX?

Durante los incidentes de performance que se tiene en el Team de AX, uno de los puntos que siempre estamos revisando y que siempre sugerimos focalizar, son: Niveles de fragmentación en indices clustered & non-clustered

Y en pocas palabras, para que me sirve?...

El siguiente objeto ayudará a los DBAs a:

1. % de 0 a 100 donde conocerás el nivel de fragmentación que están tus índices, la mejor acción proactiva para un DBA : Reconstruir o reorganizar solo lo necesario optimizando tiempos de procesador y mantenimientos más puntuales, concretos y con mejoras visibles.

2. Integra esta consulta a tu plan de mantenimiento, como un reporte de salud a índices; así como integralo a tu DRP (Disaster Recovery Plan) en el apartado de: Mantenimiento

3. Puedes hacer un job en sql donde puedas tener este reporte y mantengas en especial cuidado Objetos de AX core u objetos customizados.

Script.

USE <AXDB>

select t4.name as [schema_name]
, t3.name as table_name
, t2.name as index_name
, t1.object_id
, t1.index_id
, t1.partition_number
, t1.index_type_desc
, t1.avg_fragmentation_in_percent
, t1.avg_fragment_size_in_pages
, t1.page_count
from sys.dm_db_index_physical_stats(db_id(),NULL,NULL,NULL,'LIMITED' ) t1
inner join sys.objects t3 on (t1.object_id = t3.object_id)
inner join sys.schemas t4 on (t3.schema_id = t4.schema_id)
inner join sys.indexes t2 on (t1.object_id = t2.object_id and t1.index_id = t2.index_id )
where index_type_desc <> 'HEAP'
order by t4.name,t3.name,t2.name,partition_number

Ahora bien, que hacer cuando ya tienes estos resultados?

4. 

  •      Exportalos a un archivo de excel
  •      Agrega un filtro  a los headers
  •      Ordenalo de mayor a menor por la columna de: avg_fragmentation_in_percent,
  •      Conocerás el estatus de tus objetos
  •      Define una métrica de mantenimiento.

5. Por ejemplo yo he agregado una métrica de un 30%

6. Posterior a ésto, recomiendo identificar los objetos que cumplen con la condición anterior y generarte la siguiente pregunta son: índices de AX core o son índices que corresponde a customizaciones?

7. Como recontruir o reorganizar tus índices?

 Tabla | Indices | Click derecho sobre el nodo de índices | Recontruccion total ó Reorganización.

Este procedimiento te dará un panorama de planeación e integración a tus actividades de mantenimiento básico para la Base de Datos de Dynamics AX.

 Espero te sirva.

 Eumir Arnäiz

 

Fuente: Rod Hansen, (PFE-Microsoft)