前⾔
在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;
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流。
因篇幅问题不能全部显示,请点此查看更多更全内容