database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 2021 게시물 읽기
No. 2021
스토어드 프로시저 연속 호출시 lock 걸리는 현상
작성자
양경욱(ykw007)
작성일
2007-08-27 14:23
조회수
7,354

-- 스토어드 sp_testnsert  프로시저 생성

Create Proc sp_testnsert (
                                               @A char(12),
                                               @B char(10),
                                               @C numeric(8,1),
                                               @D char(1),
                                               @E char(1)
)
WITH RECOMPILE
AS

   DECLARE @cur_sido char(2)
 
   SELECT @cur_sido=id FROM tb_cursido
   
   IF @cur_sido = '00'
   BEGIN
 
             INSERT INTO tob_kow_qty_rain10(
                                                               Ac,
                                                               Bc,
                                                               Cc,
                                                               Dc,
                                                               Ec,
                                                               Fc
            ) VALUES (
                                                               @A,
                                                               @B,
                                                               convert(numeric(8,1), @C),
                                                               @D,
                                                               @E,
                                                               getdate()
             )
 
   END
       
   IF @cur_sido = substring(@B, 1, 2)
   BEGIN
 
            INSERT INTO tob_kow_qty_rain10(
                                                               Ac,
                                                               Bc,
                                                               Cc,
                                                               Dc,
                                                               Ec,
                                                               Fc
            ) VALUES (
                                                               @A,
                                                               @B,
                                                               convert(numeric(8,1), @C),
                                                               @D,
                                                               @E,
                                                               getdate()
            )
 
   END
  
  

위 프로시저를 아래와 같은 형식으로 200번 이상 루프를 돌려 실행시킨 뒤 마지막에 commit을 실행합니다.


즉  루프를 돌게되면

sp_procxmode sp_testInsert, chained                           

exec sp_testInsert 1, '11', 1, 1, 1, 1



sp_procxmode sp_testInsert, chained                           

exec sp_testInsert 2, '47', 2, 2, 2, 2



sp_procxmode sp_testInsert, chained                           

exec sp_testInsert 3, '47', 3, 3, 3, 3

.
.
.


sp_procxmode sp_testInsert, chained                           

exec sp_testInsert 200, '48', 200, 200, 200, 200



이렇게 실행 명령을 내리고  commit 이 실행됩니다.




위와 같이 실행을 하면 db에 부하가 너무 걸리고 lock이 자꾸 걸려서 다른 테이블에도 영향을 미칩니다.

혹시 잘못된 부분이 있으면 가르쳐 주세요.

이 글에 대한 댓글이 총 2건 있습니다.

일단 recompile옵션 뺴시고요


tob_kow_qty_rain에 lock이 많이 발생한다는 것 같은데


하여간 두테이블 모두 dol로 변경하세요

지연님이 2007-08-29 17:36에 작성한 댓글입니다. Edit
sp_configure 'row lock promotion HWM' 를 확인해보세요
아마두 default 값인 200으로 잡혀있는 듯...

row level lock이 200개 이상이면 table lock으로 바뀌게 됩니다.( 다른 프로그램이 해당 테이블에 lock을 걸지 않는경우)

테이블 lock으로 전이되어 blocking을 발생시키지 않으려면
충분히 큰 값으로 셋팅해야 될 듯...
영빈~(backfish)님이 2007-09-04 16:58에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
2024사이베이스 디비가 기동안되는데 .... 디비파일가지고 복구 가능한가요.. [6]
지나가다가
2007-08-31
7902
2023asp와 기존 sysbase db를 연동하는방법 질문????? [1]
김명기
2007-08-29
6502
2022쉘스크립트에서 프로시저 실행하고 싶어요. [1]
초보자
2007-08-28
8479
2021스토어드 프로시저 연속 호출시 lock 걸리는 현상 [2]
양경욱
2007-08-27
7354
2019뷰 생성 확인 [1]
이성욱
2007-08-26
6121
2018bcp bulk copy 질문입니다 [2]
비기닝
2007-08-25
6725
2017인덱스 컬럼에 걸었을 경우 index를 못타게 막는 함수설명좀 부탁드립니다..^^;; [2]
천적
2007-08-25
6105
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다