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等待事件。

原文地址:https://www.cnblogs.com/hzcya1995/p/13352248.html