当前位置:Gxlcms > 数据库问题 > SSISDB数据清理2

SSISDB数据清理2

时间:2021-07-01 10:21:17 帮助过:6人阅读

PROCEDURE [internal].[cleanup_server_retention_window_truncateall] AS SET NOCOUNT ON DECLARE @enable_clean_operation bit DECLARE @retention_window_length INT DECLARE @caller_name nvarchar(256) DECLARE @caller_sid varbinary(85) DECLARE @operation_id BIGINT EXECUTE AS CALLER SET @caller_name = SUSER_NAME() SET @caller_sid = SUSER_SID() REVERT BEGIN TRY SELECT @enable_clean_operation = CONVERT(bit, property_value) FROM [catalog].[catalog_properties] WHERE property_name = OPERATION_CLEANUP_ENABLED IF @enable_clean_operation = 1 BEGIN SELECT @retention_window_length = CONVERT(INT,property_value) FROM [catalog].[catalog_properties] WHERE property_name = RETENTION_WINDOW IF @retention_window_length <= 0 BEGIN RAISERROR(27163 ,16,1,RETENTION_WINDOW) END INSERT INTO [internal].[operations] ( [operation_type], [created_time], [object_type], [object_id], [object_name], [STATUS], [start_time], [caller_sid], [caller_name] ) VALUES ( 2, SYSDATETIMEOFFSET(), NULL, NULL, NULL, 1, SYSDATETIMEOFFSET(), @caller_sid, @caller_name ) SET @operation_id = SCOPE_IDENTITY() -- Remove all [internal].[executions] dependancies TRUNCATE TABLE [internal].[executable_statistics] TRUNCATE TABLE [internal].[execution_component_phases] TRUNCATE TABLE [internal].[execution_data_statistics] TRUNCATE TABLE [internal].[execution_data_taps] TRUNCATE TABLE [internal].[execution_parameter_values] TRUNCATE TABLE [internal].[execution_property_override_values] -- Remove all [internal].[event_message_context] dependancies TRUNCATE TABLE [internal].[event_message_context] -- Remove all non-dependant tables TRUNCATE TABLE [internal].[operation_os_sys_info] TRUNCATE TABLE [internal].[operation_permissions] TRUNCATE TABLE [internal].[validations] TRUNCATE TABLE [internal].[extended_operation_info] -- Deal with [internal].[event_messages] and [internal].[operation_messages] ALTER TABLE [internal].[event_message_context] DROP CONSTRAINT [FK_EventMessageContext_EventMessageId_EventMessages] TRUNCATE TABLE internal.event_messages ALTER TABLE [internal].[event_message_context] WITH CHECK ADD CONSTRAINT [FK_EventMessageContext_EventMessageId_EventMessages] FOREIGN KEY([event_message_id]) REFERENCES [internal].[event_messages] ([event_message_id]) ON DELETE CASCADE ALTER TABLE [internal].[event_messages] DROP CONSTRAINT [FK_EventMessages_OperationMessageId_OperationMessage] TRUNCATE TABLE [internal].[operation_messages] ALTER TABLE [internal].[event_messages] WITH CHECK ADD CONSTRAINT [FK_EventMessages_OperationMessageId_OperationMessage] FOREIGN KEY([event_message_id]) REFERENCES [internal].[operation_messages] ([operation_message_id]) ON DELETE CASCADE -- Deal with [internal].[executions] ALTER TABLE [internal].[executable_statistics] DROP CONSTRAINT [FK_ExecutableStatistics_ExecutionId_Executions] ALTER TABLE [internal].[execution_component_phases] DROP CONSTRAINT [FK_ExecCompPhases_ExecutionId_Executions] ALTER TABLE [internal].[execution_data_statistics] DROP CONSTRAINT [FK_ExecDataStat_ExecutionId_Executions] ALTER TABLE [internal].[execution_data_taps] DROP CONSTRAINT [FK_ExecDataTaps_ExecutionId_Executions] ALTER TABLE [internal].[execution_parameter_values] DROP CONSTRAINT [FK_ExecutionParameterValue_ExecutionId_Executions] ALTER TABLE [internal].[execution_property_override_values] DROP CONSTRAINT [FK_ExecutionPropertyOverrideValue_ExecutionId_Executions] TRUNCATE TABLE [internal].[executions] ALTER TABLE [internal].[execution_property_override_values] WITH CHECK ADD CONSTRAINT [FK_ExecutionPropertyOverrideValue_ExecutionId_Executions] FOREIGN KEY([execution_id]) REFERENCES [internal].[executions] ([execution_id]) ON DELETE CASCADE ALTER TABLE [internal].[execution_parameter_values] WITH CHECK ADD CONSTRAINT [FK_ExecutionParameterValue_ExecutionId_Executions] FOREIGN KEY([execution_id]) REFERENCES [internal].[executions] ([execution_id]) ON DELETE CASCADE ALTER TABLE [internal].[execution_data_taps] WITH CHECK ADD CONSTRAINT [FK_ExecDataTaps_ExecutionId_Executions] FOREIGN KEY([execution_id]) REFERENCES [internal].[executions] ([execution_id]) ON DELETE CASCADE ALTER TABLE [internal].[execution_data_statistics] WITH CHECK ADD CONSTRAINT [FK_ExecDataStat_ExecutionId_Executions] FOREIGN KEY([execution_id]) REFERENCES [internal].[executions] ([execution_id]) ON DELETE CASCADE ALTER TABLE [internal].[execution_component_phases] WITH CHECK ADD CONSTRAINT [FK_ExecCompPhases_ExecutionId_Executions] FOREIGN KEY([execution_id]) REFERENCES [internal].[executions] ([execution_id]) ON DELETE CASCADE ALTER TABLE [internal].[executable_statistics] WITH CHECK ADD CONSTRAINT [FK_ExecutableStatistics_ExecutionId_Executions] FOREIGN KEY([execution_id]) REFERENCES [internal].[executions] ([execution_id]) ON DELETE CASCADE -- Deal with [internal].[operations] DECLARE @deleted_ops TABLE(operation_id BIGINT, operation_type SMALLINT) DELETE --TOP (@delete_batch_size) FROM [internal].[operations] OUTPUT DELETED.operation_id, DELETED.operation_type INTO @deleted_ops WHERE operation_id != @operation_id DECLARE @execution_id BIGINT DECLARE @sqlString nvarchar(1024) DECLARE @key_name [internal].[adt_name] DECLARE @certificate_name [internal].[adt_name] DECLARE execution_cursor CURSOR LOCAL FOR SELECT operation_id FROM @deleted_ops WHERE operation_type = 200 OPEN execution_cursor FETCH NEXT FROM execution_cursor INTO @execution_id WHILE @@FETCH_STATUS = 0 BEGIN SET @key_name = MS_Enckey_Exec_+CONVERT(VARCHAR,@execution_id) SET @certificate_name = MS_Cert_Exec_+CONVERT(VARCHAR,@execution_id) SET @sqlString = IF EXISTS (SELECT name FROM sys.symmetric_keys WHERE name = ‘‘‘ + @key_name +‘‘‘) +DROP SYMMETRIC KEY + @key_name EXECUTE sp_executesql @sqlString SET @sqlString = IF EXISTS (select name from sys.certificates WHERE name = ‘‘‘ + @certificate_name +‘‘‘) +DROP CERTIFICATE + @certificate_name EXECUTE sp_executesql @sqlString FETCH NEXT FROM execution_cursor INTO @execution_id END CLOSE execution_cursor DEALLOCATE execution_cursor END END TRY BEGIN CATCH IF (CURSOR_STATUS(local, execution_cursor) = 1 OR CURSOR_STATUS(local, execution_cursor) = 0) BEGIN CLOSE execution_cursor DEALLOCATE execution_cursor END UPDATE [internal].[operations] SET [STATUS] = 4, [end_time] = SYSDATETIMEOFFSET() WHERE [operation_id] = @operation_id; THROW END CATCH RETURN 0

 

SSISDB数据清理2

标签:

人气教程排行