내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
다운로드
trending_flat
OS환경 : Oracle Linux6.8(64bit)
DB 환경 : Oracle Database 10.2.0.4
방법 :
HW락
1. HWM을 여러 프로세스가 동시에 변경하는 것을 막기 위한 락이다
2. HW락을 획득하는 과정에서 경합이 발생하면 enq HW - contention 대기 이벤트 발생한다.
3. 대부분 대량 insert에 의해 발생한다.
4. 대량 update시 언두세그먼트의 급속한 확장이 필요하기 때문에 언두세그먼트에서 HW락 경합 현상 발생한다.
5. HW락의 ID1값은 테이블스페이스 번호, ID2값으 세그먼트 헤더블록의 DBA이다.
6. 세그먼트 공간관리기법을 FLM을 사용라는 경우에 FREELISTS 속성의 기본값이 1로 세팅되기 떼문에 HW락 경합이 발생할 가능성이 높다.
대기 이벤트 발생 테스트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | show parameter db_block_size; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_block_size integer 8192 create tablespace hwm_test_tbs datafile '/orcl/oracle/app/oracle/oradata/hwm01.dbf' size 300M autoextend on extent management local uniform size 1M segment space management manual; create table hwm_test ( name1 char(2000) default ' ', name2 char(2000) default ' ', name3 char(2000) default ' ', name4 char(1500) default ' ') tablespace hwm_test_tbs; Table created. create or replace procedure massive_insert is begin for idx in 1 .. 10000 loop insert into hwm_test(name1) values(' '); commit; end loop; end; / Procedure created. #5개 세션에서 수행 exec massive_insert; PL/SQL procedure successfully completed. select event, total_waits, time_waited from v$session_event where sid = (select sid from v$mystat where rownum = 1) order by 3 desc; EVENT TOTAL_WAITS TIME_WAITED ---------------------------------------------------------------- ----------- ----------- enq: HW - contention 48434 7776 |
+ 11gR2에서는 동일하게 진행해도 이벤트 미발생
참조 : http://wiki.gurubee.net/display/CORE/enq+HW+-+contention
'ORACLE > Performance Tuning ' 카테고리의 다른 글
오라클 11g 자동통계정보수집 table lock , unlock (0) | 2018.12.13 |
---|---|
DISK IO를 많이 발생시키는 SQL 문장을 찾는 쿼리 (0) | 2018.12.12 |
enq UL - contention, PLSQL lock Timer (0) | 2018.12.05 |
SQL을 변경하지 않고 실행계획 변경 테스트(SQL Plan Management) (0) | 2018.06.28 |
QMON Coordinator 란 (0) | 2018.05.30 |