Skip to content

Commit 9be959b

Browse files
committed
#2619 sp_BlitzIndex add SortOrder param
Add SortOrder parameter. Closes #2619.
1 parent ec96168 commit 9be959b

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

sp_BlitzIndex.sql

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ ALTER PROCEDURE dbo.sp_BlitzIndex
3333
@OutputTableName NVARCHAR(256) = NULL ,
3434
@IncludeInactiveIndexes BIT = 0 /* Will skip indexes with no reads or writes */,
3535
@ShowAllMissingIndexRequests BIT = 0 /*Will make all missing index requests show up*/,
36+
@SortOrder NVARCHAR(50) = NULL, /* Only affects @Mode = 2. */
3637
@Help TINYINT = 0,
3738
@Debug BIT = 0,
3839
@Version VARCHAR(30) = NULL OUTPUT,
@@ -120,6 +121,9 @@ DECLARE @DaysUptimeInsertValue NVARCHAR(256);
120121
DECLARE @DatabaseToIgnore NVARCHAR(MAX);
121122
DECLARE @ColumnList NVARCHAR(MAX);
122123

124+
/* Let's get @SortOrder set to lower case here for comparisons later */
125+
SET @SortOrder = REPLACE(LOWER(@SortOrder), N' ', N'_');
126+
123127
SET @LineFeed = CHAR(13) + CHAR(10);
124128
SELECT @SQLServerProductVersion = CAST(SERVERPROPERTY('ProductVersion') AS NVARCHAR(128));
125129
SELECT @SQLServerEdition =CAST(SERVERPROPERTY('EngineEdition') AS INT); /* We default to online index creates where EngineEdition=3*/
@@ -5362,12 +5366,27 @@ BEGIN;
53625366
FROM #IndexSanity AS i --left join here so we don't lose disabled nc indexes
53635367
LEFT JOIN #IndexSanitySize AS sz ON i.index_sanity_id = sz.index_sanity_id
53645368
LEFT JOIN #IndexCreateTsql AS ict ON i.index_sanity_id = ict.index_sanity_id
5365-
ORDER BY [Database Name], [Schema Name], [Object Name], [Index ID]
5369+
ORDER BY CASE WHEN @SortOrder = N'rows' THEN sz.total_rows
5370+
WHEN @SortOrder = N'reserved_mb' THEN sz.total_reserved_MB
5371+
WHEN @SortOrder = N'size' THEN sz.total_reserved_MB
5372+
WHEN @SortOrder = N'reserved_lob_mb' THEN sz.total_reserved_LOB_MB
5373+
WHEN @SortOrder = N'lob' THEN sz.total_reserved_LOB_MB
5374+
WHEN @SortOrder = N'total_row_lock_wait_in_ms' THEN COALESCE(sz.total_row_lock_wait_in_ms,0)
5375+
WHEN @SortOrder = N'total_page_lock_wait_in_ms' THEN COALESCE(sz.total_page_lock_wait_in_ms,0)
5376+
WHEN @SortOrder = N'lock_time' THEN (COALESCE(sz.total_row_lock_wait_in_ms,0) + COALESCE(sz.total_page_lock_wait_in_ms,0))
5377+
WHEN @SortOrder = N'total_reads' THEN total_reads
5378+
WHEN @SortOrder = N'reads' THEN total_reads
5379+
WHEN @SortOrder = N'user_updates' THEN user_updates
5380+
WHEN @SortOrder = N'writes' THEN user_updates
5381+
WHEN @SortOrder = N'reads_per_write' THEN reads_per_write
5382+
WHEN @SortOrder = N'ratio' THEN reads_per_write
5383+
WHEN @SortOrder = N'forward_fetches' THEN sz.total_forwarded_fetch_count
5384+
WHEN @SortOrder = N'fetches' THEN sz.total_forwarded_fetch_count
5385+
ELSE NULL END DESC, /* Shout out to DHutmacher */
5386+
i.[database_name], [Schema Name], [Object Name], [Index ID]
53665387
OPTION (RECOMPILE);
53675388
END;
53685389

5369-
5370-
53715390
END; /* End @Mode=2 (index detail)*/
53725391
ELSE IF (@Mode=3) /*Missing index Detail*/
53735392
BEGIN

0 commit comments

Comments
 (0)