• Insert 和Insert 引发的buffer busy waits


    Insert 和Insert 引发的buffer busy waits
    
    
    多个会话同时对同一个表执行Insert操作时,段的区域将急速扩大,因此引发多种性能问题。Buffer lock争用引起的buffer busy waits等待现象就是其中之一。
    
    ---创建测试表空间
    create tablespace bfw_tbs_1 datafile '/u03/test/ukja_test_01.dbf' size 50M
    autoextend on 
    extent management local uniform size 1M
    segment space management auto
    
    ---创建表
    drop table bfw_test;
    
    
    create table bfw_test(id char(1000)) tablespace bfw_tbs;
    
    ---执行大量的insert 的procedure
    
    create or replace procedure bfw_do_insert
    is 
    begin
        for idx in  1  .. 10000 loop
          insert into bfw_test values('');
          end loop;
          commit;
          end;
          
    
    ---10个会话同时执行Insert
    
    var job_no number;
    begin
        for idx in  1 .. 1000 loop
          dbms_job.submit(:job_no,'bfw_do_insert;');
          commit;
          end loop;
          end;
    
    ----查看等待事件:
    1	24-6月 -14 02.53.07.143 下午	12	buffer busy waits	6	46385	1	0	76849	6	46385
    2	24-6月 -14 02.53.07.143 下午	16	enq: HW - contention	1213661190	7	25235715	0	1	201	2
    3	24-6月 -14 02.53.07.143 下午	17	buffer busy waits	6	888	1	0	76849	6	888
    4	24-6月 -14 02.53.07.143 下午	18	enq: HW - contention	1213661190	7	25235715	0	76849	6	69891
    5	24-6月 -14 02.53.07.143 下午	20	enq: HW - contention	1213661190	7	25235715	0	76849	6	69891
    6	24-6月 -14 02.53.07.143 下午	22	enq: HW - contention	1213661190	7	25235715	0	1	201	2
    7	24-6月 -14 02.53.07.143 下午	24	enq: HW - contention	1213661190	7	25235715	0	76849	6	69891
    8	24-6月 -14 02.53.07.143 下午	26	buffer busy waits	6	46385	1	0	76849	6	46385
    9	24-6月 -14 02.53.07.143 下午	28	buffer busy waits	6	301	1	0	76849	6	301
    10	24-6月 -14 02.53.07.143 下午	30	enq: HW - contention	1213661190	7	25235715	0	1	201	2
    11	24-6月 -14 02.53.07.143 下午	32	log file sync	5934	7135725	0	0	76849	6	69891
    12	24-6月 -14 02.53.07.143 下午	34	enq: HW - contention	1213661190	7	25235715	0	1	201	2
    13	24-6月 -14 02.53.07.143 下午	36	enq: US - contention	1431502854	333	0	0	76849	6	69891
    14	24-6月 -14 02.53.07.143 下午	38	enq: HW - contention	1213661190	7	25235715	0	1	201	2
    15	24-6月 -14 02.53.07.143 下午	40	enq: US - contention	1431502854	333	0	0	76849	6	625
    16	24-6月 -14 02.53.07.143 下午	42	enq: US - contention	1431502854	333	0	0	-1	0	0
    17	24-6月 -14 02.53.07.143 下午	44	enq: HW - contention	1213661190	7	25235715	0	76849	6	69891
    18	24-6月 -14 02.53.07.143 下午	46	buffer busy waits	6	697	1	0	76849	6	697
    19	24-6月 -14 02.53.07.143 下午	48	enq: HW - contention	1213661190	7	25235715	0	76849	6	69891
    20	24-6月 -14 02.53.07.143 下午	50	enq: HW - contention	1213661190	7	25235715	0	1	201	2
    21	24-6月 -14 02.53.07.143 下午	52	buffer busy waits	6	301	1	0	76849	6	301
    
    
    如上所示,与buffer busy waits等待一起大量的enq: HW - contention
    
    执行Insert时修改段块是为了修改空闲列信息或修改(High Water Mark 高水位线).修改HWM的过程中,HW锁争用现在一同发生,因此发生了enq: HW - contention等待事件。
    

  • 相关阅读:
    解决input获取焦点时底部菜单被顶上来问题
    JavaScript学习笔记
    JavaScript表单验证
    js 中{},[]中括号,大括号使用详解
    陀飞轮
    娱乐天空
    左右手
    软测 学习
    git 学习
    spring boot 学习
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352248.html
Copyright © 2020-2023  润新知