[SQL2012] Indexes Manquants interpretation de données
Bonjour,
en parcourant le net à la recherche d'information je me suis créer ce petit script que je trouve bien pratique pour analyser les indexes manquants dans certaines zones de programmes.
J'aimerais juste un avis sur l’interprétation des 3 dernières colonnes, notamment unique_compiles. Je visualise mal ce qu'est une compilation dans une requête, et par extension pourquoi le nombre de recherches n'est pas identique au nombre de compilations.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| SELECT
COUNT(*) OVER (PARTITION BY statement,mig.index_group_handle) AS NbColonnesIndex
,NbCTbl.NbColonnes NbColonnesTotal
,mig.index_group_handle,
statement AS [database_scheme_table],
column_id , column_name, column_usage,
migs.user_seeks, migs.user_scans,
migs.last_user_seek, migs.avg_total_user_cost,
migs.avg_user_impact
,migs.unique_compiles,migs.user_scans,migs.user_seeks
FROM sys.dm_db_missing_index_details AS mid
INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle = mid.index_handle
INNER JOIN sys.dm_db_missing_index_group_stats AS migs ON mig.index_group_handle=migs.group_handle
CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)
cross apply(
Select Count(*) NbColonnes from sys.columns C_ where C_.object_id=MID.object_id
) NbCTbl
where statement like '%maBase%'
ORDER BY unique_compiles desc
,migs.avg_user_impact DESC
,mig.index_group_handle
,mig.index_handle
,column_id |