Skip to content

Commit 2546568

Browse files
fix statistic sql for plan data
1 parent 51fd8c4 commit 2546568

1 file changed

Lines changed: 34 additions & 12 deletions

File tree

internal/sql-analyzer/const/sql/sql_plan.go

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -97,20 +97,42 @@ const (
9797
FROM sql_plan
9898
WHERE SQL_ID = ?
9999
GROUP BY TENANT_ID, SVR_IP, SVR_PORT, PLAN_ID, PLAN_HASH
100+
),
101+
PlanStats AS (
102+
SELECT
103+
PLAN_HASH,
104+
CAST(AVG(IO_COST) AS BIGINT) as IO_COST,
105+
CAST(AVG(CPU_COST) AS BIGINT) as CPU_COST,
106+
CAST(AVG(COST) AS BIGINT) as COST,
107+
CAST(AVG(REAL_COST) AS BIGINT) as REAL_COST
108+
FROM PlanAgg
109+
GROUP BY PLAN_HASH
110+
),
111+
LatestPlan AS (
112+
SELECT
113+
TENANT_ID,
114+
SVR_IP,
115+
SVR_PORT,
116+
PLAN_ID,
117+
PLAN_HASH,
118+
GMT_CREATE,
119+
ROW_NUMBER() OVER (PARTITION BY PLAN_HASH ORDER BY GMT_CREATE DESC, PLAN_ID DESC) as rn
120+
FROM PlanAgg
100121
)
101122
SELECT
102-
MAX(TENANT_ID) as TENANT_ID,
103-
MAX(SVR_IP) as SVR_IP,
104-
MAX(SVR_PORT) as SVR_PORT,
105-
MAX(PLAN_ID) as PLAN_ID,
106-
PLAN_HASH,
107-
MAX(GMT_CREATE) as GMT_CREATE,
108-
CAST(AVG(IO_COST) AS BIGINT) as IO_COST,
109-
CAST(AVG(CPU_COST) AS BIGINT) as CPU_COST,
110-
CAST(AVG(COST) AS BIGINT) as COST,
111-
CAST(AVG(REAL_COST) AS BIGINT) as REAL_COST
112-
FROM PlanAgg
113-
GROUP BY PLAN_HASH
123+
lp.TENANT_ID,
124+
lp.SVR_IP,
125+
lp.SVR_PORT,
126+
lp.PLAN_ID,
127+
lp.PLAN_HASH,
128+
lp.GMT_CREATE,
129+
ps.IO_COST,
130+
ps.CPU_COST,
131+
ps.COST,
132+
ps.REAL_COST
133+
FROM LatestPlan lp
134+
JOIN PlanStats ps ON lp.PLAN_HASH = ps.PLAN_HASH
135+
WHERE lp.rn = 1
114136
`
115137
GetTableInfo = `
116138
SELECT

0 commit comments

Comments
 (0)