Oracle 查看当前执行IO次数最多的SQL

本文介绍了一种查询Oracle数据库中执行IO最频繁的SQL语句的方法,并按IO大小进行排序。此外,还提供了查看执行计划及正在运行的高IO会话的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--查询当前执行IO最多的sql,并按大到小来排序
select cast(buffer_gets/decode(EXECUTions,0,10000,EXECUTions) as int) 平均IO ,
EXECUTions 执行次数,buffer_gets 总逻辑IO,disk_reads 硬盘读取,
sql_text SQl语句 from v$sqlarea
where parsing_schema_name='HQT'
order by buffer_gets desc


oracle查看执行计划
你可以在session中set autotrace on,你可以看到统计信息和执行计划
也可以使用dbms_xplan包去查看执行计划。


Oracle IO优化心得
http://wenku.baidu.com/link?url=JsMtHdp5NLN2IqZf06Bbldhcc6tKIqGBf7XhbTwo5o7YV0QkKBgUTtGGGoZhc8j0e4rlJ56eIKtd3GIOIBuKsOdbebfHx9UUu6A7C7J0NbO


查看IO较大正在运行的session:

SELECT se.sid,
se.serial#,
pr.SPID,
se.username,
se.status,
se.terminal,
se.program,
se.MODULE,
se.sql_address,
st.event,
st.p1text,
st.p1,
st.p2,
st.p3,
st.STATE,
st.SECONDS_IN_WAIT,
si.physical_reads,
si.block_changes
FROM v$session se,
v$session_wait st,
v$sess_io si,
v$process pr
WHERE st.sid=se.sid
AND st.sid=si.sid
AND se.PADDR=pr.ADDR
AND se.sid>6
AND st.wait_time=0
AND st.event NOT LIKE '%SQL%'
ORDER BY physical_reads DESC

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值