SELECT dm_mid.database_id AS DatabaseID,
dm_migs.avg_user_impact * ( dm_migs.user_seeks + dm_migs.user_scans )
Avg_Estimated_Impact,
dm_migs.last_user_seek AS
Last_User_Seek,
Object_name(dm_mid.object_id, dm_mid.database_id) AS [TableName]
,
'CREATE INDEX [IX_'
+ Object_name(dm_mid.object_id, dm_mid.database_id)
+ '_'
+ Replace(Replace(Replace(Isnull(dm_mid.equality_columns, ''), ', ', '_')
, '[',
''), ']', '')
+ CASE WHEN dm_mid.equality_columns IS NOT NULL AND
dm_mid.inequality_columns IS
NOT NULL THEN '_' ELSE '' END
+ Replace(Replace(Replace(Isnull(dm_mid.inequality_columns, ''), ', ',
'_'), '['
, ''), ']', '')
+ ']' + ' ON ' + dm_mid.statement + ' ('
+ Isnull(dm_mid.equality_columns, '') + CASE WHEN dm_mid.equality_columns
IS NOT
NULL AND dm_mid.inequality_columns IS NOT NULL THEN ',' ELSE '' END
+ Isnull(dm_mid.inequality_columns, '') + ')'
+ Isnull(' INCLUDE (' + dm_mid.included_columns + ')', '') AS
Create_Statement
FROM sys.dm_db_missing_index_groups dm_mig
INNER JOIN sys.dm_db_missing_index_group_stats dm_migs
ON dm_migs.group_handle = dm_mig.index_group_handle
INNER JOIN sys.dm_db_missing_index_details dm_mid
ON dm_mig.index_handle = dm_mid.index_handle
WHERE dm_mid.database_id = Db_id()
ORDER BY avg_estimated_impact DESC
go
Wednesday, 30 January 2019
SQL Server Mising Index
The SQL script is used to identify the missing index in SQL Server