Oracle统计分析某个SQL的执行频率
2026-01-08 22:46 潇湘隐者 阅读(9) 评论(0) 收藏 举报有时候因为业务增长或应用程序配置问题会导致一些SQL语句的执行频率出现飚增,下面这两个SQL语句就是用来统计某个SQL的执行频率/单位时间内的执行次数,分析SQL的执行频率是否出现异常。
按天统计SQL的执行次数
SET LINESIZE 255
SET PAGESIZE 60
COL SQL_ID FOR A20
COL DATE_TIME FOR A20
SELECT M.SQL_ID ,
TO_CHAR(N.BEGIN_INTERVAL_TIME, 'YYYY-MM-DD') "DATE_TIME",
SUM(M.EXECUTIONS_DELTA) EXECUTIONS
FROM DBA_HIST_SQLSTAT M, DBA_HIST_SNAPSHOT N
WHERE M.SNAP_ID = N.SNAP_ID
AND M.DBID = N.DBID
AND M.INSTANCE_NUMBER = N.INSTANCE_NUMBER
AND M.INSTANCE_NUMBER=1
AND M.SQL_ID='&SQL_ID'
GROUP BY M.SQL_ID , TO_CHAR(N.BEGIN_INTERVAL_TIME, 'YYYY-MM-DD')
ORDER BY "DATE_TIME";
按小时统计SQL的执行次数
SET LINESIZE 255
SET PAGESIZE 60
COL SQL_ID FOR A20
COL DATE_TIME FOR A20
SELECT M.SQL_ID ,
TO_CHAR(N.BEGIN_INTERVAL_TIME, 'YYYY-MM-DD HH24') "DATE_TIME",
SUM(M.EXECUTIONS_DELTA) EXECUTIONS
FROM DBA_HIST_SQLSTAT M, DBA_HIST_SNAPSHOT N
WHERE M.SNAP_ID = N.SNAP_ID
AND M.DBID = N.DBID
AND M.INSTANCE_NUMBER = N.INSTANCE_NUMBER
AND M.INSTANCE_NUMBER=1
AND M.SQL_ID='&SQL_ID'
GROUP BY M.SQL_ID , TO_CHAR(N.BEGIN_INTERVAL_TIME, 'YYYY-MM-DD HH24')
ORDER BY "DATE_TIME";
扫描上面二维码关注我
如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
浙公网安备 33010602011771号