Tuesday, December 4, 2012

Updation of Statistics in Production for Each Table


Updation of Statistics 
-----------------------

The following script is used for update statistics either partial or full  for each table based on day of  the week.We are using this in our production.


DECLARE @dw INT
-- @lastrundate VARCHAR(10),, @Isexecute BIT
SELECT @dw = DATEPART(DW,GETDATE())
--SET @Isexecute = 1

IF (@dw = 6  or @dw =7 ) -- if  Thursday night or Friday night
--IF (@dw = 1 ) -- if  sunday
BEGIN

--SELECT @lastrundate = last_run_date FROM msdb.dbo.sysjobsteps WHERE Job_id = 'C6D5BFD5-61E4-4169-A0C0-D2C163AD69BE' AND step_id = 1

-- IF (@dw = 1 AND (@lastrundate = CONVERT(VARCHAR,GETDATE(),112)) ) -- If saturday and rebuild of index matched with statistics job same day
-- BEGIN
-- SET @Isexecute = 0
-- END
-- ELSE IF (@dw = 1 AND (@lastrundate <> CONVERT(VARCHAR,GETDATE(),112))  )
-- BEGIN                                                                    
-- SET @Isexecute = 0
-- END
--END

--IF (@Isexecute = 1)
--BEGIN
--- UPDATION OF STATISTICS
SET ANSI_NULLS ON

SET ANSI_PADDING ON

SET ANSI_WARNINGS ON

SET ARITHABORT ON

SET CONCAT_NULL_YIELDS_NULL ON

SET QUOTED_IDENTIFIER ON

SET NUMERIC_ROUNDABORT OFF

--PRINT 'UPDATE STATITSTICS WITH FULL SCAN'
EXEC sp_MSForeachtable "UPDATE STATISTICS ? WITH FULLSCAN"
END

Else
Begin

EXEC sp_updatestats
End



No comments:

Post a Comment