sync
This commit is contained in:
@@ -21,6 +21,7 @@ SELECT t.name AS TableName,
|
|||||||
WHERE i.object_id > 255
|
WHERE i.object_id > 255
|
||||||
-- AND i.index_id IN ( 0, 1 ) --0=heap, 1= clustered
|
-- AND i.index_id IN ( 0, 1 ) --0=heap, 1= clustered
|
||||||
AND t.name NOT LIKE 'dt%'
|
AND t.name NOT LIKE 'dt%'
|
||||||
|
AND t.name LIKE 'archive[_]%'
|
||||||
AND [t].[is_ms_shipped] = 0
|
AND [t].[is_ms_shipped] = 0
|
||||||
AND i.object_id > 255
|
AND i.object_id > 255
|
||||||
GROUP BY t.name,
|
GROUP BY t.name,
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ SELECT
|
|||||||
--,d2.[log_size_mb]
|
--,d2.[log_size_mb]
|
||||||
--,d2.[row_size_mb]
|
--,d2.[row_size_mb]
|
||||||
,'-----' AS separator
|
,'-----' AS separator
|
||||||
,CAST(f.size * 8. / 1024 AS DECIMAL(18,2)) AS fileSizeMB
|
,CAST(f.size * 8.0 / 1024 AS DECIMAL(18,2)) AS fileSizeMB
|
||||||
,fs.[FreeSpaceMB] AS FreeSpaceInFileMB
|
,fs.[FreeSpaceMB] AS FreeSpaceInFileMB
|
||||||
,fs.[CurrentSizeMB] - fs.[FreeSpaceMB] AS SpaceUsedMB
|
,fs.[CurrentSizeMB] - fs.[FreeSpaceMB] AS SpaceUsedMB
|
||||||
,CAST((fs.[CurrentSizeMB] - fs.[FreeSpaceMB]) * 100 / (CAST(f.size * 8. / 1024 AS DECIMAL(18,2))) AS NUMERIC(6,2)) AS fileSpaceUsedPercent
|
,CAST((fs.[CurrentSizeMB] - fs.[FreeSpaceMB]) * 100 / (CAST(f.size * 8. / 1024 AS DECIMAL(18,2))) AS NUMERIC(6,2)) AS fileSpaceUsedPercent
|
||||||
@@ -64,6 +64,19 @@ DBCC SHRINKFILE (N'''+f.[name]+''' , 1024);
|
|||||||
GO
|
GO
|
||||||
|
|
||||||
' AS reorganizeData
|
' AS reorganizeData
|
||||||
|
,'USE '+d.name+';
|
||||||
|
IF 1024 < '+CAST(CAST(f.size * 8.0 / 1024 AS DECIMAL(18,2)) AS VARCHAR(15))+' --file is above 1Go
|
||||||
|
AND 95 > '+CAST(CAST((fs.[CurrentSizeMB] - fs.[FreeSpaceMB]) * 100 / (CAST(f.size * 8.0 / 1024 AS DECIMAL(18,2))) AS DECIMAL(6,2))AS VARCHAR(15))+' --and usage below 95%
|
||||||
|
AND 0 < '+CAST(CAST(fs.[CurrentSizeMB] - fs.[FreeSpaceMB] AS DECIMAL(18,2))AS VARCHAR(15))+' --and data are present
|
||||||
|
BEGIN
|
||||||
|
--print ''Reorganize '+d.name+'.'+f.name+' ''
|
||||||
|
RAISERROR(''Reorganize '+d.name+'.'+f.name+' '',0,0) WITH NOWAIT
|
||||||
|
|
||||||
|
DBCC SHRINKFILE (N'''+f.[name]+''' , '+CAST(CAST(fs.[CurrentSizeMB] - fs.[FreeSpaceMB] + 1024 AS DECIMAL(18,0)) AS VARCHAR(15))+');
|
||||||
|
RAISERROR(''Done'',0,0) WITH NOWAIT
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
' AS auto_action
|
||||||
FROM sys.master_files F
|
FROM sys.master_files F
|
||||||
JOIN sys.databases d ON d.[database_id] = f.[database_id]
|
JOIN sys.databases d ON d.[database_id] = f.[database_id]
|
||||||
JOIN [#dbs] [d2] ON d2.[database_name] = d.[name]
|
JOIN [#dbs] [d2] ON d2.[database_name] = d.[name]
|
||||||
@@ -76,12 +89,12 @@ WHERE f.type_desc IN (
|
|||||||
--AND d.[is_read_only] = 0
|
--AND d.[is_read_only] = 0
|
||||||
--AND d.[is_auto_shrink_on] = 0
|
--AND d.[is_auto_shrink_on] = 0
|
||||||
--AND d.name='sl2007'
|
--AND d.name='sl2007'
|
||||||
--AND d.name NOT IN (
|
AND d.name NOT IN (
|
||||||
-- 'master'
|
'master'
|
||||||
-- ,'tempdb'
|
,'tempdb'
|
||||||
-- ,'model'
|
,'model'
|
||||||
-- ,'msdb'
|
,'msdb'
|
||||||
--)
|
)
|
||||||
ORDER BY [d2].[row_size_mb] DESC, d.name DESC, f.name ASC ;
|
ORDER BY [d2].[row_size_mb] DESC, d.name DESC, f.name ASC ;
|
||||||
|
|
||||||
--free disk space
|
--free disk space
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
USE [DocumedisUsageLogs]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
MDDOC-878
|
||||||
|
|
||||||
|
Purge of the table DocumedisUsageLogs.dbo.Compendium2020UsageLogs
|
||||||
|
|
||||||
|
Records that are more than 7 months old will be purged.
|
||||||
|
|
||||||
|
Deletion is made in batches to avoid locking.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE [purge_Compendium2020UsageLogs]
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @cutoff DATE = DATEADD(MONTH, -7, CURRENT_TIMESTAMP);
|
||||||
|
DECLARE @batch INT = 5000;
|
||||||
|
DECLARE @row_count INT = 1;
|
||||||
|
|
||||||
|
WHILE @row_count > 0
|
||||||
|
BEGIN
|
||||||
|
DELETE TOP(@batch) s
|
||||||
|
FROM [dbo].[Compendium2020UsageLogs] s
|
||||||
|
WHERE [s].[LogDateTime] > @cutoff;
|
||||||
|
|
||||||
|
SET @row_count = @@rowcount;
|
||||||
|
END
|
||||||
|
END
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
USE [DocumedisUsageLogs]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
MDDOC-878
|
||||||
|
|
||||||
|
Purge of the table DocumedisUsageLogs.dbo.Documedis2020UsageLogs
|
||||||
|
|
||||||
|
Records that are more than 7 months old will be purged.
|
||||||
|
|
||||||
|
Deletion is made in batches to avoid locking.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE [purge_Documedis2020UsageLogs]
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @cutoff DATE = DATEADD(MONTH, -7, CURRENT_TIMESTAMP);
|
||||||
|
DECLARE @batch INT = 5000;
|
||||||
|
DECLARE @row_count INT = 1;
|
||||||
|
|
||||||
|
WHILE @row_count > 0
|
||||||
|
BEGIN
|
||||||
|
DELETE TOP(@batch) s
|
||||||
|
FROM [dbo].[Documedis2020UsageLogs] s
|
||||||
|
WHERE [s].[LogDateTime] > @cutoff;
|
||||||
|
|
||||||
|
SET @row_count = @@rowcount;
|
||||||
|
END
|
||||||
|
END
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
USE [DocumedisUsageLogs]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
MDDOC-878
|
||||||
|
|
||||||
|
Purge of the table DocumedisUsageLogs.dbo.Pharmavista2020UsageLogs
|
||||||
|
|
||||||
|
Records that are more than 7 months old will be purged.
|
||||||
|
|
||||||
|
Deletion is made in batches to avoid locking.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE [purge_Pharmavista2020UsageLogs]
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @cutoff DATE = DATEADD(MONTH, -7, CURRENT_TIMESTAMP);
|
||||||
|
DECLARE @batch INT = 5000;
|
||||||
|
DECLARE @row_count INT = 1;
|
||||||
|
|
||||||
|
WHILE @row_count > 0
|
||||||
|
BEGIN
|
||||||
|
DELETE TOP(@batch) s
|
||||||
|
FROM [dbo].[Pharmavista2020UsageLogs] s
|
||||||
|
WHERE [s].[LogDateTime] > @cutoff;
|
||||||
|
|
||||||
|
SET @row_count = @@rowcount;
|
||||||
|
END
|
||||||
|
END
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
USE [DocumedisUsageLogs]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
MDDOC-878
|
||||||
|
|
||||||
|
Purge of the table DocumedisUsageLogs.dbo.Api2020UsageLogs
|
||||||
|
|
||||||
|
Records that are more than 7 months old will be purged.
|
||||||
|
|
||||||
|
Deletion is made in batches to avoid locking.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE [purge_Api2020UsageLogs]
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @cutoff DATE = DATEADD(MONTH, -7, CURRENT_TIMESTAMP);
|
||||||
|
DECLARE @batch INT = 5000;
|
||||||
|
DECLARE @row_count INT = 1;
|
||||||
|
|
||||||
|
WHILE @row_count > 0
|
||||||
|
BEGIN
|
||||||
|
DELETE TOP(@batch) s
|
||||||
|
FROM [dbo].[Api2020UsageLogs] s
|
||||||
|
WHERE [s].[LogDateTime] > @cutoff;
|
||||||
|
END
|
||||||
|
END
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
USE [DocumedisLogs]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
MDDOC-878
|
||||||
|
|
||||||
|
Purge of the table documedisLogs.dbo.Documedis_VaccinationCheck_LogData
|
||||||
|
|
||||||
|
Only records that are more than 7 months old and present as archived in [archivedRowsJournal]
|
||||||
|
will be purged.
|
||||||
|
All satellite tables are purged in order.
|
||||||
|
|
||||||
|
Deletion is made in batches to avoid locking.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE [purge_Documedis_VaccinationCheck_LogData] AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @cutoff DATE = DATEADD(MONTH, -7, CURRENT_TIMESTAMP);
|
||||||
|
DECLARE @batch INT = 5000;
|
||||||
|
DECLARE @row_count INT = 1;
|
||||||
|
DECLARE @tbl_to_del TABLE (DocumedisClinicalDecisionSupportLogData_PK BIGINT NOT NULL );
|
||||||
|
|
||||||
|
WHILE @row_count > 0
|
||||||
|
BEGIN
|
||||||
|
TRUNCATE TABLE @tbl_to_del;
|
||||||
|
|
||||||
|
-- region populate filter table
|
||||||
|
INSERT INTO @tbl_to_del([DocumedisClinicalDecisionSupportLogData_PK])
|
||||||
|
SELECT TOP (@batch)
|
||||||
|
[s].[DocumedisClinicalDecisionSupportLogData_PK]
|
||||||
|
FROM [dbo].[Documedis_ClinicalDecisionSupport_LogData] [s]
|
||||||
|
WHERE [s].[LogDateTime] > @cutoff
|
||||||
|
AND EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM [archivedRowsJournal] [a]
|
||||||
|
WHERE [a].[tableName] = 'Documedis_ClinicalDecisionSupport_LogData'
|
||||||
|
AND [a].[tableRowId] = [s].[DocumedisClinicalDecisionSupportLogData_PK]
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT @row_count = COUNT(1)
|
||||||
|
FROM @tbl_to_del;
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region logcheck products
|
||||||
|
DELETE [lcp]
|
||||||
|
FROM @tbl_to_del [d]
|
||||||
|
INNER JOIN [Documedis_ClinicalDecisionSupport_LogCheck] [lc] ON [lc].[DocumedisClinicalDecisionSupportLogData_FK] = [d].[DocumedisClinicalDecisionSupportLogData_PK]
|
||||||
|
INNER JOIN [Documedis_ClinicalDecisionSupport_LogCheckProduct] [lcp] ON [lc].[DocumedisClinicalDecisionSupportLogCheck_PK] = [lcp].[DocumedisClinicalDecisionSupportLogCheck_FK];
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region logcheck interactions
|
||||||
|
DELETE [lci]
|
||||||
|
FROM @tbl_to_del [d]
|
||||||
|
INNER JOIN [Documedis_ClinicalDecisionSupport_LogCheck] [lc] ON [lc].[DocumedisClinicalDecisionSupportLogData_FK] = [d].[DocumedisClinicalDecisionSupportLogData_PK]
|
||||||
|
INNER JOIN [Documedis_ClinicalDecisionSupport_LogCheckInteraction] [lci] ON [lc].[DocumedisClinicalDecisionSupportLogCheck_PK] = [lci].[DocumedisClinicalDecisionSupportLogCheck_FK];
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region logcheck
|
||||||
|
DELETE [lc]
|
||||||
|
FROM @tbl_to_del [d]
|
||||||
|
INNER JOIN [Documedis_ClinicalDecisionSupport_LogCheck] [lc] ON [lc].[DocumedisClinicalDecisionSupportLogData_FK] = [d].[DocumedisClinicalDecisionSupportLogData_PK];
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region patientRisk
|
||||||
|
DELETE [lr]
|
||||||
|
FROM @tbl_to_del [d]
|
||||||
|
INNER JOIN [Documedis_ClinicalDecisionSupport_LogDataPatientRisk] [lr] ON [lr].[DocumedisClinicalDecisionSupportLogData_FK] = [d].[DocumedisClinicalDecisionSupportLogData_PK];
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region logData
|
||||||
|
SELECT 1
|
||||||
|
FROM @tbl_to_del [d]
|
||||||
|
INNER JOIN [Documedis_ClinicalDecisionSupport_LogData] [ld] ON [ld].[DocumedisClinicalDecisionSupportLogData_PK] = [d].[DocumedisClinicalDecisionSupportLogData_PK];
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region archivedRowsJournal
|
||||||
|
SELECT 1
|
||||||
|
FROM [archivedRowsJournal] j
|
||||||
|
INNER JOIN @tbl_to_del [d] ON [d].[DocumedisClinicalDecisionSupportLogData_PK] = [j].[tableRowId]
|
||||||
|
WHERE [j].[tableName]='Documedis_ClinicalDecisionSupport_LogData';
|
||||||
|
-- endregion
|
||||||
|
END
|
||||||
|
END
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
USE [DocumedisLogs]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
MDDOC-878
|
||||||
|
|
||||||
|
Purge of the table documedisLogs.dbo.DocumedisSecurityLogs
|
||||||
|
|
||||||
|
Only records that are more than 7 months old and present as archived in [archivedRowsJournal]
|
||||||
|
will be purged.
|
||||||
|
|
||||||
|
Deletion is made in small batches to avoid locking.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE [purge_documedisSecurityLogs] AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @cutoff DATE = DATEADD(MONTH, -7, CURRENT_TIMESTAMP);
|
||||||
|
DECLARE @batch INT = 5000;
|
||||||
|
DECLARE @row_count INT = 1
|
||||||
|
DECLARE @tbl_to_del TABLE([DocumedisSecurityLogId] BIGINT NOT NULL);
|
||||||
|
|
||||||
|
WHILE @row_count > 0 BEGIN
|
||||||
|
TRUNCATE TABLE @tbl_to_del;
|
||||||
|
|
||||||
|
-- region populate filter table
|
||||||
|
INSERT INTO @tbl_to_del([DocumedisSecurityLogId])
|
||||||
|
SELECT TOP (@batch)
|
||||||
|
[s].[DocumedisSecurityLogId]
|
||||||
|
FROM [DocumedisSecurityLogs] [s]
|
||||||
|
WHERE [s].[LogDateTime] > @cutoff
|
||||||
|
AND EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM [archivedRowsJournal] [j]
|
||||||
|
WHERE [j].[tableName] = 'DocumedisSecurityLogs'
|
||||||
|
AND [j].[tableRowId] = [s].[DocumedisSecurityLogId]
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT @row_count = COUNT(1)
|
||||||
|
FROM @tbl_to_del;
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region DocumedisSecurityLogs
|
||||||
|
DELETE [s]
|
||||||
|
FROM @tbl_to_del [d]
|
||||||
|
INNER JOIN [dbo].[DocumedisSecurityLogs] [s] ON [s].[DocumedisSecurityLogId] = [d].[DocumedisSecurityLogId];
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region archivedRowsJournal
|
||||||
|
DELETE [j]
|
||||||
|
FROM [archivedRowsJournal] [j]
|
||||||
|
INNER JOIN @tbl_to_del [d] ON [d].[DocumedisSecurityLogId] = [j].[tableRowId]
|
||||||
|
WHERE [tableName] = 'DocumedisSecurityLogs'
|
||||||
|
-- endregion
|
||||||
|
END
|
||||||
|
END
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
USE [DocumedisLogs]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/*
|
||||||
|
MDDOC-878
|
||||||
|
|
||||||
|
Purge of the table documedisLogs.dbo.Documedis_VaccinationCheck_LogData
|
||||||
|
|
||||||
|
Only records that are more than 7 months old and present as archived in [archivedRowsJournal]
|
||||||
|
will be purged.
|
||||||
|
|
||||||
|
Deletion is made in small batches to avoid locking.
|
||||||
|
*/
|
||||||
|
CREATE PROCEDURE [purge_Documedis_VaccinationCheck_LogData] AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @cutoff DATE = DATEADD(MONTH, -7, CURRENT_TIMESTAMP);
|
||||||
|
DECLARE @batch INT = 5000;
|
||||||
|
DECLARE @row_count INT = 1
|
||||||
|
DECLARE @tbl_to_del TABLE (DocumedisVaccinationCheckLogData_PK BIGINT NOT NULL );
|
||||||
|
|
||||||
|
WHILE @row_count > 0 BEGIN
|
||||||
|
TRUNCATE TABLE @tbl_to_del;
|
||||||
|
|
||||||
|
-- region populate filter table
|
||||||
|
INSERT INTO @tbl_to_del([DocumedisVaccinationCheckLogData_PK])
|
||||||
|
SELECT TOP (@batch)
|
||||||
|
[s].[DocumedisVaccinationCheckLogData_PK]
|
||||||
|
FROM [dbo].[Documedis_VaccinationCheck_LogData] [s]
|
||||||
|
WHERE [s].[LogDateTime] > @cutoff
|
||||||
|
AND EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM [archivedRowsJournal] [a]
|
||||||
|
WHERE [a].[tableName] = 'Documedis_VaccinationCheck_LogData'
|
||||||
|
AND [a].[tableRowId] = [s].[DocumedisVaccinationCheckLogData_PK]
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT @row_count = COUNT(1)
|
||||||
|
FROM @tbl_to_del;
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region Documedis_VaccinationCheck_LogData
|
||||||
|
DELETE [d]
|
||||||
|
FROM @tbl_to_del d
|
||||||
|
INNER JOIN [Documedis_VaccinationCheck_LogData] s ON [s].[DocumedisVaccinationCheckLogData_PK] = [d].[DocumedisVaccinationCheckLogData_PK];
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
-- region archivedRowsJournal
|
||||||
|
DELETE j
|
||||||
|
FROM [archivedRowsJournal] j
|
||||||
|
INNER JOIN @tbl_to_del d ON [j].[tableRowId] = [d].[DocumedisVaccinationCheckLogData_PK]
|
||||||
|
WHERE [j].[tableName]='Documedis_VaccinationCheck_LogData';
|
||||||
|
-- endregion
|
||||||
|
|
||||||
|
END
|
||||||
|
END
|
||||||
Reference in New Issue
Block a user