diff --git a/mysql/fix_stats_runwaitidle_sec.sql b/mysql/fix_stats_runwaitidle_sec.sql index 5b2255e..8ebf3bc 100644 --- a/mysql/fix_stats_runwaitidle_sec.sql +++ b/mysql/fix_stats_runwaitidle_sec.sql @@ -4,38 +4,34 @@ -- do not touch active jobs -DROP TEMPORARY TABLE IF EXISTS mytemp; +DROP TEMPORARY TABLE IF EXISTS + mytemp; -SET @sinq=0,@srun=0,@gid=0,@dt=0,@ot=0; +SET + @sinq=0, + @srun=0, + @gid=0, + @dt=0, + @ot=0 + ; -CREATE TEMPORARY TABLE IF NOT EXISTS mytemp AS +CREATE TEMPORARY TABLE IF NOT EXISTS + mytemp +AS ( SELECT group_id, MAX(IF(last = "run", dtime, 0)) AS run, MAX(IF(last = "wait", dtime, 0)) AS wait, MAX(IF(last = "idle", dtime, 0)) AS idle, - MAX(date_end) AS date_end, - group_date_end, - stats_run_sec, - stats_wait_sec, - stats_idle_sec + MAX(date_end) AS date_end FROM ( SELECT - gidchange, group_id, - time, - sinq, - srun, - phase, last, SUM(dt) AS dtime, - MAX(date_end) AS date_end, - group_date_end, - stats_wait_sec, - stats_run_sec, - stats_idle_sec + MAX(date_end) AS date_end FROM ( SELECT @@ -65,11 +61,7 @@ CREATE TEMPORARY TABLE IF NOT EXISTS mytemp AS time - @ot ) AS dt, @ot := time, - date_end, - group_date_end, - stats_wait_sec, - stats_run_sec, - stats_idle_sec + date_end FROM ( SELECT @@ -77,11 +69,7 @@ CREATE TEMPORARY TABLE IF NOT EXISTS mytemp AS time, SUM(dinq) as sdinq, SUM(drun) as sdrun, - MAX(date_end) AS date_end, - group_date_end, - stats_wait_sec, - stats_run_sec, - stats_idle_sec + MAX(date_end) AS date_end FROM ( ( @@ -92,16 +80,9 @@ CREATE TEMPORARY TABLE IF NOT EXISTS mytemp AS 1 AS event, 1 AS dinq, 0 AS drun, - date_end, - group_date_end, - stats_wait_sec, - stats_run_sec, - stats_idle_sec + date_end FROM - mxq_job, - mxq_group - WHERE - mxq_job.group_id = mxq_group.group_id + mxq_job ) UNION ALL ( @@ -112,17 +93,11 @@ CREATE TEMPORARY TABLE IF NOT EXISTS mytemp AS 2, -1, 1, - date_end, - group_date_end, - stats_wait_sec, - stats_run_sec, - stats_idle_sec + date_end FROM - mxq_job, - mxq_group + mxq_job WHERE - mxq_job.group_id = mxq_group.group_id - AND date_start > 0 + date_start > 0 ) UNION ALL ( @@ -133,17 +108,11 @@ CREATE TEMPORARY TABLE IF NOT EXISTS mytemp AS 3, 0, -1, - date_end, - group_date_end, - stats_wait_sec, - stats_run_sec, - stats_idle_sec + date_end FROM - mxq_job, - mxq_group + mxq_job WHERE - mxq_job.group_id = mxq_group.group_id - AND date_end > 0 + date_end > 0 ) ORDER BY group_id, @@ -151,17 +120,21 @@ CREATE TEMPORARY TABLE IF NOT EXISTS mytemp AS event ) AS S1 GROUP BY - group_id, time + group_id, + time ORDER BY - group_id, time + group_id, + time ) AS S2 ) AS S3 WHERE - last != "new" + last != "new" GROUP BY - group_id, last + group_id, + last ORDER BY - group_id, last + group_id, + last ) AS S4 GROUP BY group_id @@ -170,16 +143,21 @@ CREATE TEMPORARY TABLE IF NOT EXISTS mytemp AS SET @sinq=0,@srun=0,@gid=0,@dt=0,@ot=0; -UPDATE mxq_group AS g - LEFT JOIN mytemp AS t - ON g.group_id = t.group_id +UPDATE + mxq_group AS g + LEFT JOIN + mytemp AS t + ON + g.group_id = t.group_id SET g.stats_wait_sec = wait, g.stats_run_sec = run, g.stats_idle_sec = idle - WHERE t.group_id - AND t.group_date_end - AND g.group_date_end + WHERE + t.group_id + AND + g.group_date_end ; -DROP TEMPORARY TABLE IF EXISTS mytemp; +DROP TEMPORARY TABLE IF EXISTS + mytemp;