oracle job运行缓慢排查方法

当遇到Oracle数据库job运行缓慢的问题时,可以采取两种方法进行排查和解决。方法1是通过gv$sql_monitor监控查询,定位到运行job的用户和慢SQL,分析并优化SQL语句。方法2是利用gv$sql_plan_monitor查看物理读取,发现全表扫描等性能瓶颈。结合两者能更有效地提升job执行效率。
摘要由CSDN通过智能技术生成

遇到问题

oracle 数据库 job跑的很慢

方法1

排查办法

打开plsql,执行:
select * from gv$sql_monitor where username=‘myuser1’ order by elapsed_time desc
其中,把myuser1 换成实际运行job的用户
然后看 查询结果的sql_text 列和 elapsed_time 这两列:
在这里插入图片描述在这里插入图片描述
elapsed_time这一列单位是微秒。如图所示,发现了大量慢sql ,经对比,确实是job对应的存储过程里面的语句。经分析发现该sql 语句因跨数据库实例查询、存在两个嵌套查询导致性能不佳。

解决办法

停job --> 改写慢sql 语句 --> 再开启job 即可

方法2

select * from gv$sql_plan_monitor order by physical_read_bytes desc;
在这里插入图片描述
可以看到,出现较多的全表扫描。
方法1 和 方法2 结合起来用,效果更好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值