Last active
May 14, 2024 08:07
-
-
Save ghotz/ff2f209d631b6c2c1b3351e779c53899 to your computer and use it in GitHub Desktop.
Check SQL Server empty statistics
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
EXEC sp_msforeachdb 'USE [?]; | |
SELECT | |
DB_NAME() | |
, S.[object_id], S.[stats_id] | |
, FORMATMESSAGE( | |
N''[%s].[%s]'' | |
, OBJECT_SCHEMA_NAME(S.[object_id]) | |
, OBJECT_NAME(S.[object_id]) | |
)AS object_full_name | |
, QUOTENAME(S.[name]) AS stat_name | |
, COUNT(H.step_number) AS steps_count | |
, FORMATMESSAGE( | |
N''USE [%s]; UPDATE STATISTICS [%s].[%s] ([%s]) WITH FULLSCAN;'' | |
, DB_NAME() | |
, OBJECT_SCHEMA_NAME(S.[object_id]) | |
, OBJECT_NAME(S.[object_id]) | |
, S.[name] | |
) AS update_stmt | |
FROM sys.stats AS S | |
JOIN sys.objects AS O ON S.[object_id] = O.[object_id] | |
OUTER | |
APPLY | |
sys.dm_db_stats_histogram(S.object_id, S.stats_id) AS H | |
WHERE | |
O.is_ms_shipped = 0 | |
AND S.no_recompute = 0 | |
AND S.is_temporary = 0 | |
AND S.has_filter = 0 | |
GROUP BY | |
S.[object_id], S.stats_id, S.[name] | |
HAVING COUNT(H.step_number) = 0 | |
'; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT | |
DB_NAME() | |
, S.[object_id], S.[stats_id] | |
, FORMATMESSAGE( | |
N'[%s].[%s]' | |
, OBJECT_SCHEMA_NAME(S.[object_id]) | |
, OBJECT_NAME(S.[object_id]) | |
)AS object_full_name | |
, QUOTENAME(S.[name]) AS stat_name | |
, COUNT(H.step_number) AS steps_count | |
, FORMATMESSAGE( | |
N'USE [%s]; UPDATE STATISTICS [%s].[%s] ([%s]) WITH FULLSCAN;' | |
, DB_NAME() | |
, OBJECT_SCHEMA_NAME(S.[object_id]) | |
, OBJECT_NAME(S.[object_id]) | |
, S.[name] | |
) AS update_stmt | |
FROM sys.stats AS S | |
JOIN sys.objects AS O ON S.[object_id] = O.[object_id] | |
OUTER | |
APPLY | |
sys.dm_db_stats_histogram(S.object_id, S.stats_id) AS H | |
WHERE | |
O.is_ms_shipped = 0 | |
AND S.no_recompute = 0 | |
AND S.is_temporary = 0 | |
AND S.has_filter = 0 | |
GROUP BY | |
S.[object_id], S.stats_id, S.[name] | |
HAVING COUNT(H.step_number) = 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment