Free cookie consent management tool by TermsFeed Policy Generator

Ticket #2388: RemoveOldStatistics.sql

File RemoveOldStatistics.sql, 1.7 KB (added by dglaser, 9 years ago)
Line 
1USE [HeuristicLab.Hive-3.3]
2SET ANSI_NULLS ON
3SET QUOTED_IDENTIFIER ON
4GO
5
6/* remove statistics from trigger */
7ALTER TRIGGER [dbo].[tr_TaskDeleteCascade] ON [dbo].[Task] INSTEAD OF DELETE AS
8BEGIN
9  SELECT
10    he.OwnerUserId AS UserId,
11    ROUND(SUM(j.ExecutionTimeMs) / 1000, 0) AS ExecutionTimeS, 
12    ROUND(ISNULL(SUM(CASE ls.State WHEN 'Finished' THEN j.ExecutionTimeMs END), 0) / 1000, 0) AS ExecutionTimeSFinishedJobs,
13    ISNULL(SUM(CASE ls.State WHEN 'Finished' THEN DATEDIFF(s, fs.DateTime, ls.DateTime) ELSE 0 END), 0) AS StartToEndTimeS
14  FROM
15    deleted j,
16    Job he,
17    view_FirstState fs,
18    view_LastState ls
19  WHERE
20    he.JobId = j.JobId AND
21    fs.TaskId = j.TaskId AND
22    ls.TaskId = j.TaskId
23  GROUP BY he.OwnerUserId
24
25  -- recursively delete jobs
26  CREATE TABLE #Table(
27    TaskId uniqueidentifier
28  )
29  INSERT INTO #Table (TaskId)
30  SELECT TaskId FROM deleted
31 
32  DECLARE @c INT
33  SET @c = 0
34 
35  WHILE @c <> (SELECT COUNT(TaskId) FROM #Table) BEGIN
36    SELECT @c = COUNT(TaskId) FROM #Table
37   
38    INSERT INTO #Table (TaskId)
39      SELECT Task.TaskId
40      FROM Task
41      LEFT OUTER JOIN #Table ON Task.TaskId = #Table.TaskId
42      WHERE Task.ParentTaskId IN (SELECT TaskId FROM #Table)
43        AND #Table.TaskId IS NULL
44  END
45 
46  DELETE TaskData FROM TaskData INNER JOIN #Table ON TaskData.TaskId = #Table.TaskId
47  DELETE Task FROM Task INNER JOIN #Table ON Task.TaskId = #Table.TaskId
48END
49GO
50
51/* drop obsolete triggers/views/tables */
52DROP TRIGGER [dbo].[tr_StatisticsDeleteCascade]
53GO
54
55DROP VIEW [dbo].[view_Statistics]
56GO
57
58DROP TABLE [dbo].[DeletedJobStatistics]
59GO
60
61DROP TABLE [dbo].[UserStatistics]
62GO
63
64DROP TABLE [dbo].[SlaveStatistics]
65GO
66
67DROP TABLE [dbo].[Statistics]
68GO