SELECT

  mig.index_group_handle, mid.index_handle,

  CONVERT (decimal (28,1),

    migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans)

  ) AS improvement_measure,

  'create index IDX_' + OBJECT_NAME(object_id,database_id) + '_Missing_' +

   replace(replace(replace(replace(ISNULL (mid.equality_columns,'') + '_' +

   ISNULL (mid.inequality_columns, ''), ',', '_'), ' ', ''), '[', ''), ']', '') +

' on [' + OBJECT_NAME(object_id,database_id) + '] (' +  ISNULL (mid.equality_columns,'')

    + CASE WHEN mid.equality_columns IS NOT NULL AND mid.inequality_columns IS NOT NULL THEN ',' ELSE '' END

    + ISNULL (mid.inequality_columns, '')

    + ')' + isnull(' Include (' + included_columns + ')','') + ' WITH (ONLINE=ON)' AS create_index_statement,

  migs.*, mid.database_id, mid.[object_id]

FROM sys.dm_db_missing_index_groups mig

INNER JOIN sys.dm_db_missing_index_group_stats migs ON migs.group_handle = mig.index_group_handle

INNER JOIN sys.dm_db_missing_index_details mid ON mig.index_handle = mid.index_handle

WHERE CONVERT (decimal (28,1), migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans)) > 10

ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC

posted on 2015-09-23 16:23  勿忘我  阅读(278)  评论(0编辑  收藏  举报