oracle语句中截取,Oracle中获取最低效的 topSQL的语句 (引用)

oracle提供了很多工具来查找最低效的SQL,但是,本质上就是通过如下SQL语句,从相关系统视图中获取最低效的SQL:

select rownum as rank, a.*

from (select PARSING_SCHEMA_NAME RUN_USER, --执行用户

SQL_FULLTEXT, --SQL文本,全,带格式

sql_text, --SQL文本前面部分

elapsed_Time , --单位是微秒,语句执行完的总时间,包括CPU时间和等待时间

cpu_time , --CPU时间,语句运行的时间

elapsed_Time - cpu_time wait_time,

trunc((elapsed_Time - cpu_time)*100/elapsed_Time,2) "wait_time_per%",--等待时间所占百分比

executions, --执行次数

elapsed_Time/(executions+1) Per_Time, --每次执行平均时间,

buffer_gets, --

disk_reads, --磁盘读

hash_value, --SQL的hash_value,以备获取完整SQL

USER_IO_WAIT_TIME,

SORTS --排序次数

from v$sqlarea t

where elapsed_time > 20000 and PARSING_SCHEMA_NAME<>'SYS'

order by elapsed_time desc) a

where rownum < 21

order by elapsed_time desc

Responsce time = service time + wait time

一个操作的响应时间 = 必要的服务(计算)时间 + 各种等待时间

而在V$SQL中

elapsed_time 代表了执行完毕的时间 , 也就是响应时间,response time,

而cpu_time 代表了执行时消耗的CPU 时间,也就是计算时间,服务时间,service time

所以

elapsed_time = cpu_time + wait_time

有时候可以通过这两个值的差来衡量这个SQL的wait Time.

当然,有时候可能关心elapsed_time ,有时候则关心cpu_time ,也有时候关心wait Time,取决于实际需求。

这个SQL,务必保存,掌握这些SQL,比使图形化工具,要高效方便的多得多![@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24237320/viewspace-1059095/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值