오라클 성능 트러블슈팅의 기초 (2012년)
DBMS_LOCK 0 0 43,600

by 구루비스터디 DBMS_LOCK PLSQL 패키지 [2023.09.05]


DBMS_LOCK

  • 이 패키지는 User Lock을 구현하기 위한 목적으로 제공되는 패키지 이다. 하지만 여기서는 이 목적 보다는 sleep을 사용하기 위해 많이 사용한다.
SQL> exec dbms_lock.sleep(0.1);
-- 0.1초 지연한다.

  • 다음과 같이 함수로 구현하여 쿼리 실행 시 사용이 가능하다.

SQL> create or replace function fsleep (p_dummy number, p_sleep number)
return number
is
begin
dbms_lock.sleep(p_sleep);
return 1;
end;
/

SQL> select count(*) from dual where fsleep(level, 0.1) = 1
connect by level <= 100;

SQL> insert into t1 select level from dual where fsleep(level,0.1) = 1
connect by level <= 100;

  • 테스트는 다음과 같다.

SYS@CX3WAS1 >exec dbms_lock.sleep(0.1);
PL/SQL procedure successfully completed.

SYS@CX3WAS1 >create or replace function fsleep (p_dummy number, p_sleep number)
return number
is
begin   2    3    4
dbms_lock.sleep(p_sleep);
return 1;
end;
/
  5    6    7    8
Function created.

SYS@CX3WAS1 >select count(*) from dual where fsleep(level, 0.1) = 1
connect by level <= 100;
  2

  COUNT(*)
----------
       100
"데이터베이스 스터디모임" 에서 2012년에 "오라클 성능 트러블슈팅의 기초 " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4272

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입