热点块引发的cache buffers cahins latch

87 篇文章 34 订阅 ¥39.90 ¥99.00
本文探讨了SQL语句优化后仍然存在的cache buffers chains latch问题,重点在于热点块引起的争用。通过创建并执行测试用例,展示了多个会话执行相同SQL时如何导致hot block和latch争用。通过对v$latch_children和v$session_wait视图的分析,确定了问题的根源,并提供了利用x$bh视图识别hot block的方法。
摘要由CSDN通过智能技术生成
热点块引发的Cache buffer Chains latch:


   SQL语句即便适当进行了调优,有时也无法解决cache buffers cahins latch,若在编写SQL语句时的SQL工作方式,

只是持续扫描少数特定块,则在多个会话同时执行此SQL语句时,就会发生Hot Block引起的cache buffers chains latch争用。


测试方案如下:

1) 创建与测试相同的表和索引。

2) 即便有效扫描索引,多个会话也会反复扫描相同的块,因此发生Hot Block引起的cache buffers chains latch争用。

SQL> create or replace Procedure cbc_do_select(p_from in NUMBER,
  2                                            p_to   IN  NUMBER) is
  3  begin
  4    -- 反复,集中扫描特定块
  5    for idx in 1 .. 3000 loop
  6      for x in (select id from cbc_test where id between p_from and p_to) loop
  7        null;
  8      end loop;
  9    end loop;
 10  end;
 11  /

Procedure created

---同时执行20个读取工作
var job_no number;
begin 
         for idx in  1 .. 20 loop
         dbms_job.submit(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值