Buenas a todos, aqui os dejo un script de SQL que os propondrá los indices faltantes de las Tablas de nuestra base de datos y el impacto que tiene en el rendimiento del sistema, para su optimización.
En el script vereis que esta dividido en 2 , las que son de “include” y las que no. Lo explico, las que tienen “include” crean el indice indicando que filtros se estan utilizando a la hora de encontrar los registros relacionados con con estos indices.
Os recomiento que utiliceis primero estos; No obstante no creeis todos de golpe, ya que hay algunas relaciones que son en ambas direcciones, Ejecutad de 2 en 2 o de 3 en 3 e id ejecutando la consulta de crear indices, vereis que la lista merma bastante o no dependiendo de las relaciones creadas
Espero que os ayude a optimizar la base de datos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
select distinct * from ( Select * from ( SELECT avg_user_impact,Replace('CREATE NONCLUSTERED INDEX [ISLMKRS' + LEFT(REPLACE(replace(RTRIM(LTRIM(replace(RTRIM(LTRIM(replace(s.equality_columns + isnull(s.included_columns,'') ,'[',''))),']',''))),',',''),' ',''),110) + Cast (ROW_NUMBER() OVER (ORDER BY s.equality_columns DESC) as varchar(10))+'] ON ' + s.statement + '(' + s.equality_columns + ') include (' + isnull(s.included_columns,'') + ')','include ()','') as z FROM sys.dm_db_missing_index_details s inner join sys.objects o on s.OBJECT_ID = o.object_id left join sys.dm_db_missing_index_groups g on s.index_handle = g.index_handle inner join sys.dm_db_missing_index_group_stats gs on g.index_group_handle =gs.group_handle) as X where not X.z is null union all Select * from ( SELECT avg_user_impact, Replace('CREATE NONCLUSTERED INDEX [ISLMKRS' + LEFT(REPLACE(replace(RTRIM(LTRIM(replace(RTRIM(LTRIM(replace(s.inequality_columns + isnull(s.included_columns,'') ,'[',''))),']',''))),',',''),' ',''),110) + Cast (ROW_NUMBER() OVER (ORDER BY s.inequality_columns DESC) as varchar(10))+'] ON ' + s.statement + '(' + s.inequality_columns + ') include (' + isnull(s.included_columns,'') + ')','include ()','') as z FROM sys.dm_db_missing_index_details s inner join sys.objects o on s.OBJECT_ID = o.object_id left join sys.dm_db_missing_index_groups g on s.index_handle = g.index_handle inner join sys.dm_db_missing_index_group_stats gs on g.index_group_handle =gs.group_handle ) as X where not X.z is null ) as x2 |
Un saludo a todos, y ya sabes si quieres saber mas suscribete a la web para futuras publicaciones buscame en youtube para mas tutoriales y ejemplos. en:
https://www.youtube.com/channel/UCOqxJCs8Ybe-PbUkFw2yPjg