globalscape/sql/Purge Fact Tables.sql

67 lines
2.7 KiB
Transact-SQL

/*
Script by: Jonathan Branan, 8-10-2020
Purpose: To trim uneeded data from fact tables in EFT's database. A simple function that allows a specification of 'daysSaved'.
DISCLAIMER: Use at your own risk. Globalscape does not accept ANY responsiblity for any unexpected outcomes as a result of use of this script.
Version 1.0 - Added before and after row counts, status updates and set default retention period to match EFT's Purge Script.
*/
DECLARE @count INT
DECLARE @daysSaved DATETIME2
--Set the integer "60" to the amount of days you would like to retain in the fact tables.
SET @daysSaved = DATEADD(DAY, -60, GETDATE())
PRINT 'Fact Table Purge Version 1.0'
PRINT ''
PRINT 'Row count of Fact Tables before the purge:'
PRINT ''
--Initial Row Count
select @count = count(*) from [dbo].[tbl_Report_Exec_Summ] PRINT ' tbl_Report_Exec_Summ count = ' +CAST(@count AS NVARCHAR)
select @count = count(*) from [dbo].[tbl_Report_Traffic1] PRINT ' tbl_Report_Traffic1 count = ' +CAST(@count AS NVARCHAR)
select @count = count(*) from [dbo].[tbl_Report_Traffic2] PRINT ' tbl_Report_Traffic2 count = ' +CAST(@count AS NVARCHAR)
select @count = count(*) from [dbo].[tbl_Report_Traffic3] PRINT ' tbl_Report_Traffic3 count = ' +CAST(@count AS NVARCHAR)
select @count = count(*) from [dbo].[tbl_Report_Traffic4] PRINT ' tbl_Report_Traffic4 count = ' +CAST(@count AS NVARCHAR)
PRINT ''
PRINT 'Purging Fact Tables...'
PRINT ''
--Purge Fact Tables
PRINT 'Purging from tbl_Report_Exec_Summ...'
DELETE FROM tbl_Report_Exec_Summ WHERE DayOfRecord < @daysSaved
PRINT ''
PRINT 'Purging from tbl_Report_Traffic1...'
DELETE FROM tbl_Report_Traffic1 WHERE DayOfRecord < @daysSaved
PRINT ''
PRINT 'Purging from tbl_Report_Traffic2...'
DELETE FROM tbl_Report_Traffic2 WHERE DayOfRecord < @daysSaved
PRINT ''
PRINT 'Purging from tbl_Report_Traffic3...'
DELETE FROM tbl_Report_Traffic3 WHERE DayOfRecord < @daysSaved
PRINT ''
PRINT 'Purging from tbl_Report_Traffic4...'
DELETE FROM tbl_Report_Traffic4 WHERE DayOfRecord < @daysSaved
PRINT ''
PRINT 'Purging Complete'
PRINT ''
PRINT 'Row counts of Fact Tables after the purge:'
PRINT ''
--Final Row Count
select @count = count(*) from [dbo].[tbl_Report_Exec_Summ] PRINT ' tbl_Report_Exec_Summ count = ' +CAST(@count AS NVARCHAR)
select @count = count(*) from [dbo].[tbl_Report_Traffic1] PRINT ' tbl_Report_Traffic1 count = ' +CAST(@count AS NVARCHAR)
select @count = count(*) from [dbo].[tbl_Report_Traffic2] PRINT ' tbl_Report_Traffic2 count = ' +CAST(@count AS NVARCHAR)
select @count = count(*) from [dbo].[tbl_Report_Traffic3] PRINT ' tbl_Report_Traffic3 count = ' +CAST(@count AS NVARCHAR)
select @count = count(*) from [dbo].[tbl_Report_Traffic4] PRINT ' tbl_Report_Traffic4 count = ' +CAST(@count AS NVARCHAR)
PRINT ''
PRINT 'Done'