Skip to content

Commit 2d05538

Browse files
authored
Create spReport_INDEX_Missing_Index_Recommendations.sql
1 parent a2563fb commit 2d05538

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
SET ANSI_NULLS ON
2+
GO
3+
SET QUOTED_IDENTIFIER ON
4+
GO
5+
CREATE OR ALTER PROCEDURE [dbo].[spReport_INDEX_Missing_Index_Recommendations]
6+
@argDBName VARCHAR(128), @argObject_Name VARCHAR(128), @argTop_N SMALLINT
7+
AS
8+
BEGIN
9+
10+
IF @argTop_N IS NULL
11+
SELECT @argTop_N = 500
12+
13+
SELECT TOP (@argTop_N)
14+
CONVERT(DECIMAL(20,2), migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans)) AS Total_Impact,
15+
db_name(mid.database_id) AS DB_Name,
16+
object_name(mid.object_id, mid.database_id) AS Object_Name,
17+
mid.equality_columns, mid.inequality_columns, mid.included_columns,
18+
CONVERT(DECIMAL(20, 2), migs.avg_total_user_cost) AS avg_total_user_cost,
19+
CONVERT(DECIMAL(20, 2), migs.avg_user_impact) AS avg_user_impact,
20+
migs.user_seeks, migs.user_scans, migs.unique_compiles,
21+
migs.last_user_seek, migs.last_user_scan, migs.system_seeks, migs.system_scans, migs.last_system_seek,
22+
migs.last_system_scan, migs.avg_total_system_cost, migs.avg_system_impact,
23+
migs.group_handle, mid.statement
24+
FROM sys.dm_db_missing_index_group_stats AS migs
25+
INNER JOIN sys.dm_db_missing_index_groups AS mig ON (migs.group_handle = mig.index_group_handle)
26+
INNER JOIN sys.dm_db_missing_index_details AS mid ON (mig.index_handle = mid.index_handle)
27+
WHERE (mid.database_id = DB_ID(@argDBName) OR @argDBName IS NULL) AND
28+
((object_name(mid.object_id, mid.database_id) LIKE '%' + @argObject_Name + '%') OR (@argObject_Name IS NULL))
29+
ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC
30+
31+
END
32+

0 commit comments

Comments
 (0)