Tuesday, February 2, 2016

Database statistics information



------------------------------------------------------------------------------------
-- list all database options
------------------------------------------------------------------------------------

SELECT * FROM [sys].[databases] WHERE [name] = 'sysaid_live'

IF (SELECT COUNT(*) FROM [sys].[databases] WHERE [name] = 'AdventureWorks2012' AND [is_auto_create_stats_on] = 0) = 0
BEGIN
ALTER DATABASE [AdventureWorks2012] SET AUTO_UPDATE_STATISTICS ON
END;

------------------------------------------------------------------------------------
-- list all old statistics in database Original
------------------------------------------------------------------------------------
SELECT
  st.object_id                          AS [Table ID]
, OBJECT_NAME(st.object_id)             AS [Table Name]
, st.name                               AS [Index Name]
, STATS_DATE(st.object_id, st.stats_id) AS [LastUpdated]
, modification_counter                  AS [Rows Modified]
FROM
sys.stats st
CROSS APPLY
sys.dm_db_stats_properties(st.object_id, st.stats_id) AS sp
WHERE
STATS_DATE(st.object_id, st.stats_id)<=DATEADD(DAY,-1,GETDATE())
AND modification_counter > 0
AND OBJECTPROPERTY(st.object_id,'IsUserTable')=1

------------------------------------------------------------------------------------
--calculate database level statistics for all tables
------------------------------------------------------------------------------------

DECLARE @SQL VARCHAR(1000)
DECLARE @DB sysname

DECLARE curDB CURSOR FORWARD_ONLY STATIC FOR
   SELECT [name]
   FROM master..sysdatabases
   WHERE [name] NOT IN ('model', 'tempdb')
   ORDER BY [name]
 
OPEN curDB
FETCH NEXT FROM curDB INTO @DB
WHILE @@FETCH_STATUS = 0
   BEGIN
       SELECT @SQL = 'USE [' + @DB +']' + CHAR(13) + 'EXEC sp_updatestats' + CHAR(13)
       PRINT @SQL
       FETCH NEXT FROM curDB INTO @DB
   END
 
CLOSE curDB
DEALLOCATE curDB



https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html

No comments:

Post a Comment