|
@@ -1,6 +1,6 @@
|
|
|
-- 04/01/2012 Pedro Lopes (Microsoft) [email protected] (http://aka.ms/sqlinsights/)
|
|
|
--
|
|
|
--- Checks for stats last update on database in scope
|
|
|
+-- Checks for statistics last update date in the current database.
|
|
|
--
|
|
|
-- 11/02/2016 Fixed rows col when sys.dm_db_stats_properties returns null
|
|
|
--
|
|
@@ -14,7 +14,7 @@ SELECT @sqlbuild = CONVERT(int, @@microsoftversion & 0xffff);
|
|
|
IF (@sqlmajorver = 10 AND @sqlminorver = 50 AND @sqlbuild >= 4000) OR (@sqlmajorver = 11 AND @sqlbuild >= 3000) OR @sqlmajorver > 11
|
|
|
BEGIN
|
|
|
SET @sqlcmd = 'USE ' + QUOTENAME(DB_NAME()) + ';
|
|
|
-SELECT DISTINCT ''' + DB_NAME() + ''' AS [DatabaseName], ''' + CONVERT(VARCHAR(12),DB_ID()) + ''' AS [databaseID], mst.[object_id] AS objectID, t.name AS schemaName, OBJECT_NAME(mst.[object_id]) AS tableName, ISNULL(sp.[rows],SUM(p.[rows])) AS [rows], sp.modification_counter, ss.[stats_id], ss.name AS [stat_name], STATS_DATE(o.[object_id], ss.[stats_id]) AS [stats_date]
|
|
|
+SELECT DISTINCT ''' + CONVERT(VARCHAR(12),DB_ID()) + ''' AS [databaseID], mst.[object_id] AS objectID, ss.[stats_id], ''' + DB_NAME() + ''' AS [DatabaseName], t.name AS schemaName, OBJECT_NAME(mst.[object_id]) AS tableName, ss.name AS [stat_name], ISNULL(sp.[rows],SUM(p.[rows])) AS [rows], sp.modification_counter, STATS_DATE(o.[object_id], ss.[stats_id]) AS [stats_date]
|
|
|
FROM sys.stats AS ss
|
|
|
INNER JOIN sys.objects AS o ON o.[object_id] = ss.[object_id]
|
|
|
INNER JOIN sys.tables AS mst ON mst.[object_id] = o.[object_id]
|
|
@@ -27,7 +27,7 @@ END
|
|
|
ELSE
|
|
|
BEGIN
|
|
|
SET @sqlcmd = 'USE ' + QUOTENAME(DB_NAME()) + ';
|
|
|
-SELECT DISTINCT ''' + DB_NAME() + ''' AS [DatabaseName], ''' + CONVERT(VARCHAR(12),DB_ID()) + ''' AS [databaseID], mst.[object_id] AS objectID, t.name AS schemaName, OBJECT_NAME(mst.[object_id]) AS tableName, SUM(p.[rows]) AS [rows], rowmodctr AS modification_counter, ss.stats_id, ss.name AS [stat_name], STATS_DATE(o.[object_id], ss.[stats_id]) AS [stats_date]
|
|
|
+SELECT DISTINCT ''' + CONVERT(VARCHAR(12),DB_ID()) + ''' AS [databaseID], mst.[object_id] AS objectID, ss.[stats_id], ''' + DB_NAME() + ''' AS [DatabaseName], t.name AS schemaName, OBJECT_NAME(mst.[object_id]) AS tableName, ss.name AS [stat_name], SUM(p.[rows]) AS [rows], rowmodctr AS modification_counter, STATS_DATE(o.[object_id], ss.[stats_id]) AS [stats_date]
|
|
|
FROM sys.stats AS ss
|
|
|
INNER JOIN sys.sysindexes AS si ON si.id = ss.[object_id]
|
|
|
INNER JOIN sys.objects AS o ON o.[object_id] = si.id
|