您的当前位置:首页正文

oracle查看执行最慢与查询次数最多的sql语句

2021-12-04 来源:个人技术集锦
oracle查看执⾏最慢与查询次数最多的sql语句

前⾔

在ORACLE数据库应⽤调优中,⼀个SQL的执⾏次数/频率也是常常需要关注的,因为某个SQL执⾏太频繁,要么是由于应⽤设计有缺陷,需要在业务逻辑上做出优化处理,要么是业务特殊性所导致。如果执⾏频繁的SQL,往往容易遭遇⼀些并发性的问题。 那么如何查看ORACLE数据库某个SQL的执⾏频率/次数呢? 下⾯来看看完整的⽰例代码。⼀、查询执⾏最慢的sql

select *

from (select sa.SQL_TEXT, sa.SQL_FULLTEXT,

sa.EXECUTIONS \"执⾏次数\

round(sa.ELAPSED_TIME / 1000000, 2) \"总执⾏时间\

round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) \"平均执⾏时间\ sa.COMMAND_TYPE,

sa.PARSING_USER_ID \"⽤户ID\ u.username \"⽤户名\ sa.HASH_VALUE from v$sqlarea sa left join all_users u

on sa.PARSING_USER_ID = u.user_id where sa.EXECUTIONS > 0

order by (sa.ELAPSED_TIME / sa.EXECUTIONS) desc) where rownum <= 50;

⼆、查询次数最多的 sql

select *

from (select s.SQL_TEXT,

s.EXECUTIONS \"执⾏次数\ s.PARSING_USER_ID \"⽤户名\

rank() over(order by EXECUTIONS desc) EXEC_RANK from v$sql s

left join all_users u

on u.USER_ID = s.PARSING_USER_ID) t where exec_rank <= 100;

总结

以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流。

因篇幅问题不能全部显示,请点此查看更多更全内容