@@ -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);
120121DECLARE @DatabaseToIgnore NVARCHAR (MAX );
121122DECLARE @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+
123127SET @LineFeed = CHAR (13 ) + CHAR (10 );
124128SELECT @SQLServerProductVersion = CAST (SERVERPROPERTY (' ProductVersion' ) AS NVARCHAR (128 ));
125129SELECT @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