oracle慢语句查询语句,oracle 查询执行慢的sql,使用V$SESSION_LONGOPS分析

oracle 查询执行慢的sql,使用V$SESSION_LONGOPS分析

/*

OPNAME:指长时间执行的操作名.如:Table Scan

TARGET:被操作的object_name. 如:tableA

TARGET_DESC:描述target的内容

SOFAR:这个是需要着重去关注的,表示已要完成的工作数,如扫描了多少个块。

TOTALWORK:指目标对象一共有多少数量(预计)。如块的数量。

UNITS:

START_TIME:进程的开始时间

LAST_UPDATE_TIM:最后一次调用set_session_longops的时间

TIME_REMAINING: 估计还需要多少时间完成,单位为秒

ELAPSED_SECONDS:指从开始操作时间到最后更新时间

CONTEXT:

MESSAGE:对于操作的完整描述,包括进度和操作内容。

USERNAME:与v$session中的一样。

SQL_ADDRESS:关联v$sql

SQL_HASH_VALUE:关联v$sql

QCSID:主要是并行查询一起使用。

*/

SELECT V.SQL_ID,

USERNAME,

SID,

OPNAME,

ROUND(SOFAR * 100 / TOTALWORK, 0) || '%' AS "执行进度百分比",

TIME_REMAINING "估计剩余时间(秒)",

SQL_TEXT,

A.ELAPSED_SECONDS "执行时间(秒)",

A.START_TIME "执行开始时间",

A.TOTALWORK "总数(块block)",

A.SOFAR "已完成数(块block)",

A.SOFAR / A.ELAPSED_SECONDS "每秒扫描数(块block)"

FROM V$SESSION_LONGOPS A, V$SQL V

WHERE 1 = 1

--AND TIME_REMAINING <> 0

AND SQL_ADDRESS = ADDRESS

AND SQL_HASH_VALUE = HASH_VALUE

ORDER BY A.ELAPSED_SECONDS DESC;

SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(

SQL_ID => '85tpcyjsu9mx6',

REPORT_LEVEL => 'ALL') AS REPORT

FROM DUAL;

©著作权归作者所有:来自51CTO博客作者guochao198975的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值