开发者社区> 问答> 正文

经常要监控业务SQL执行的情况,怎么统计高频执行的SQL和执行效率最慢的前10个SQL?

经常要监控业务SQL执行的情况,怎么统计高频执行的SQL和执行效率最慢的前10个SQL?

展开
收起
晓风瑟瑟 2021-10-14 23:30:47 666 0
2 条回答
写回答
取消 提交回答
  • 可以分别通过查询v$sql和v$sqlarea来实现高频执行的SQL和执行效率最慢的SQL;以下是参考SQL: --执行次数最多的前10条SQL select sql_text,executions from (select sql_text,executions, rank() over (order by executions desc) exec_rank from v$sql) where exec_rank <=10;

    --执行效率最慢的前10条SQL SELECT *
    FROM (SELECT PARSING_USER_ID EXECUTIONS,
    SORTS,
    COMMAND_TYPE,
    DISK_READS,
    SQL_TEXT
    FROM V$SQLAREA
    ORDER BY DISK_READS DESC)
    WHERE ROWNUM < 10;

    2021-10-15 23:41:38
    赞同 展开评论 打赏
  • 首先还是要开启慢日志查询,然后通过AWK分析慢日志,找出出现次数过多的SQL语句

    2021-10-15 17:30:02
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载