Friday, August 26, 2016

Check Statistics

SELECT ss.name AS SchemaName
       , st.name AS TableName
       , s.name AS IndexName
       , STATS_DATE(s.id,s.indid) AS 'Statistics Last Updated'
       , s.rowcnt AS 'Row Count'                    
       , s.rowmodctr AS 'Number Of Changes'  
       , CAST((CAST(s.rowmodctr AS DECIMAL(28,8))/CAST(s.rowcnt AS DECIMAL(28,2)) * 100.0)
                           AS DECIMAL(28,2)) AS '% Rows Changed'
       , 'update statistics ' + ss.name + '.' + st.name + ' ' + s.name as Command
FROM sys.sysindexes s
INNER JOIN sys.tables st ON st.[object_id] = s.[id]
INNER JOIN sys.schemas ss ON ss.[schema_id] = st.[schema_id]
WHERE s.indid > 0          -- non-clustered indexes
and s.rowcnt >= 1000       -- want at least 1000 rows
ORDER BY '% Rows Changed' DESC;

0 Comments:

Post a Comment

<< Home