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 1440 게시물 읽기
No. 1440
out of LOCKS 문제..
작성자
허남훈(tonyheo)
작성일
2006-02-15 21:32ⓒ
2006-02-15 21:36ⓜ
조회수
4,483

현재 Lock의 갯수는 십만개로 세팅해 놓구 있습니다.

그런데 out of LOCKS 에러가 발생을 합니다.

단순히 number of locks의 값만 늘릴수도 없는 상황입니다.

그래서 원인을 찾는 중인데.. 에러가 어디에서 발생하는지 알수가 없습니다.

혹시 out of LOCKS 에러가 발생했을경우 어디서 발생하는 지 확인할수 있는 모니터링 방법이나 체크해볼 사항, 방법등을 알고 계신분 안계신가요?

아님 이런 문제를 해결하신분의 경험담이라도......

sp_sysmon으로는 일정 시간의 Lock갯수만 확인 할수 있기때문에 그닥 도움이 안되드라구요..

 

그리고 십만개의 Lock이면 작은 건가요?

 

그리고 out of LOCKS에러가 발생할 경우 Rollback을 하고 있는데 그냥 Commit해도 괜찮은 가요?

검색하다 보니깐 데이터에는 이상없고 단지 Lock갯수를 초과해서 나타나는 에러라고 해서..

만약 그렇다면 단지 경고성의 메시지라는 것인가요?

 

그럼 수고하세요....^^

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

보통 사이트에서는 50,000 정도면 충분한것 같은데요.

원인을 찾기 위해서는 현재 실행되는 쿼리를 찾아야 겠지요.

sp_lock을 통해 해당 spid 값을 얻고요. table_id를 통해 table name을 구합니다.

select object_name(table_id)를 하시면 table name 이 나옵니다.

 

물론 select * from master..sysprocesses where spid = 위의 spid 를 통해서 락을 생성한

ip-address를 알수도 있겠지요.

 

아래와 같이 실행하면 때에따라 수행하는 쿼리도 캡쳐가능 합니다.

dbcc traceon (3604)

go

dbcc sqltext (spid)

go 하시면 쿼리가 나옵니다.

 

무엇보다도 원인은 lock escalation 이 되지 않커나 트랜잭션 모드가 3으로 되어서 발생하는 문제입니다.

다른 사람이 해당 테이블을 사용하지 않을 경우 수행하면 sh-page 가 sh-table로 ex-page는

ex-table lock으로 lock escalation 됩니다.

 

좋은 방법은 transaction level을 조정하는 것입니다.

각 트랙잭션 level의 특성을 미리 공부 하세요

c program의 경우는 pre-compile 시 -r option을 사용해 pre-compile 하면 transaction level 1 로 수행되어 해결가능 합니다.

일반 프로그램에서는 set transaction isolation level 1을 수행하고 쿼리를 수행하셔도 됩니다. (exec sql set transaction isolation level 1)

 

c program은 default로 ioslation level 3로 테이블을 일어가면서 계속 lock을 발생합니다.

level 1은 해당 page 또는 해당 row 만 lock이 걸립니다.

좋은 해결 바랍니다.

 

 

사랑님이 2006-02-15 21:52에 작성한 댓글입니다.
이 댓글은 2006-02-15 21:57에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1443Column 추가 에러 [6]
급해요
2006-02-21
6581
1442asiq EXECUTE IMMEDIATE 문의 [8]
손유근
2006-02-17
4800
1441temp table 문제 입니다. [3]
조경남
2006-02-16
8356
1440out of LOCKS 문제.. [1]
허남훈
2006-02-15
4483
1439필드값을 전부 곱하려면. [4]
궁금
2006-02-15
3592
1438sybase trigger 쿼리 에러 문의 [2]
최종환
2006-02-14
4649
1437Recursive 쿼리는 어떻게 해야하나요? [3]
하롱
2006-02-14
4481
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다