Showing posts with label Clear log. Show all posts
Showing posts with label Clear log. Show all posts

Tuesday, 20 September 2016

DNN Clear Log

To clear the DNN Log from DB use the following scripts 

TRUNCATE TABLE sitelog;

delete EventLog
where EventLog.LogGUID in (

SELECT     el.LogGUID
FROM            dbo.EventLog AS el LEFT OUTER JOIN
                         dbo.ExceptionEvents AS ee ON el.LogEventID = ee.LogEventID LEFT OUTER JOIN
                         dbo.Exceptions AS e ON el.ExceptionHash = e.ExceptionHash);

truncate table schedulehistory;



To shrink the DB (minimize the log file -.ldf- size) use the following script 

ALTER DATABASE dbname SET RECOVERY simple; --To change the recovery model
DBCC SHRINKDATABASE (dbname, TRUNCATEONLY); -- shrink database
DBCC SHRINKDATABASE (dbname);
ALTER DATABASE dbname SET RECOVERY full; --To change the recovery model




OR use the following script 


IF EXISTS (SELECT * FROM sys.sysobjects WHERE id = object_id(N'[sys_currentDNNVersion]') AND Type = N'FN')
       DROP FUNCTION [sys_currentDNNVersion]
GO
-- --------- create tooling: ---------

CREATE FUNCTION [sys_currentDNNVersion]()
       RETURNS Int
AS    
BEGIN
       DECLARE @Vers Int;
       SELECT Top(1) @Vers = Major * 10000 + Minor * 100 + Build FROM [Version] ORDER BY CreatedDate DESC;
       RETURN @Vers;
END
GO


       -- Drop Foreign Key Constraints:
       DECLARE @fkName nVarChar(100) = Null;
       SELECT @fkName = name FROM sys.foreign_keys
        WHERE parent_object_id = OBJECT_ID(N'[ExceptionEvents]')
          AND Object_id IN (SELECT constraint_object_id 
                             FROM  sys.foreign_key_columns F
                                          JOIN  sys.columns C ON F.parent_object_id = C.object_id AND F.parent_column_id = C.column_ID
                                          WHERE C.Name = N'LogEventID');
       IF Not @fkName Is Null
             Exec(N'ALTER TABLE [ExceptionEvents] DROP CONSTRAINT [' + @fkName +'];');

       SET @fkName = Null;
       SELECT @fkName = name FROM sys.foreign_keys
        WHERE parent_object_id = OBJECT_ID(N'[EventLog]')
          AND Object_id IN (SELECT constraint_object_id 
                             FROM  sys.foreign_key_columns F
                                          JOIN  sys.columns C ON F.parent_object_id = C.object_id AND F.parent_column_id = C.column_ID
                                          WHERE C.Name = N'ExceptionHash');
       IF Not @fkName Is Null
             Exec(N'ALTER TABLE [EventLog] DROP CONSTRAINT [' + @fkName +']')

GO

-- Truncate tables:

       TRUNCATE TABLE [Exceptions]
       TRUNCATE TABLE [ExceptionEvents]
       TRUNCATE TABLE [EventLog]



       -- Recreate Foreign Key Constraints (using common naming):
       ALTER TABLE [ExceptionEvents]
         WITH CHECK ADD CONSTRAINT [FK_ExceptionEvents_EventLog]
             FOREIGN KEY([LogEventID])
             REFERENCES [EventLog] ([LogEventID])
         ON DELETE CASCADE;
        
       ALTER TABLE [EventLog]
         WITH CHECK ADD CONSTRAINT [FK_EventLog_Exceptions]
             FOREIGN KEY([ExceptionHash])
             REFERENCES [Exceptions] ([ExceptionHash])
         ON DELETE NO ACTION;

GO

DROP FUNCTION [sys_currentDNNVersion]

GO