Inicio
Software
Programación
HTML Programación - PHP (ini) Programación - PHP POO Programación - PHP / HTML SQL Java
Hardware
Desarrollos
Quién soy Mapa del sitio

MSSQL - Fragmentación de índices

Imprimir
Categoría: SQL
Escrito por Ch4rl1X Visitas: 830

Esta vez vamos a ver, cómo verificar el estado de fragmentación de los índices en una base de datos MSSQL, el objetivo es poder ver en la pantalla del Microsoft SQL Managment una lista de las tablas y su fragmentación, pegar el siguiente código:

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

En donde modificamos el use para indicar nuestra base y el order by para poder ordenar los campos según la preferencia.

Espero que sirva.

Saludos!