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 4391 게시물 읽기
No. 4391
allpages lock 으로 설정된 테이블을 datarows 로 변경시?
작성자
우동균(ggree1)
작성일
2014-05-26 23:27
조회수
4,665

 

안녕하세요

 

어떤 테이블이 clustered index pk 로 allpages lock 으로 생성이 되어있고 컬럼수는 대략 100개 정도 되더라구요 (-_-;;;)

데이타는 이미 10만건 가량 쌓인 상태구요..

동시다발적으로 어플리케이션에 접속한 수십명의 유저에 의해 테이블에 insert, update,  select 등이 이루어지고 있는데요..

 

현재 jeus+webtob + sybase 로 이루어진 이 어플리케이션이 현격하게 느린 속도의 퍼포먼스를 보여주고 있습니다..

가끔 was 의 로그를 보면 위에서 말한 테이블을 포함해 allpages  lock 으로 설정된 몇 개의 테이블에 데드락이

발생하기도 하고... was가 자주 행이 걸리는 경우가 잦아 이용자들의 불만이 쌓이고 있습니다.

 

그래서 원인을 찾다보니 db에서 락을 많이 잡고 있어서 db pool 초과로 인해 서버 속도가 저하되고 있다고 서버 엔지니어가 그러더군요...

 

혹시 위에서 말한 테이블.. 즉 allpages lock 으로 설정된 테이블을 datarows lock 으로 변경해보는 것이 하나의 해결책이 될 수 있을런지요?

allpages -> datapages or datarows 로 변경시 인덱스 재생성 및 테이블 카피로 인해 엄청난 시간이 걸린다는데 혹시 어느정도의 시간이

걸릴지 예측이 가능할런지요?

 

선배님들의 많은 가르침 부탁드립니다.. 사이베이스 어려워요..ㅜㅜ

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

allpage에서 datarow로 바꾸면 lock 경합은 많이 줄어들것으로 보입니다.

 

그리고 10만건이라면 그리 오래 걸리진 않을거 같습니다.

kkk님이 2014-05-27 15:48에 작성한 댓글입니다. Edit

 

답변 감사합니다..

사실 해당 테이블이 컬럼수도 너무 많고 클러스터드 인덱스로 생성된 여파인지

10만건정도의 데이터지만 툴에서 select * from table 이렇게만 쿼리를 날렸을 경우

10분정도 기다려도 결과가 나오지 않아 쿼리를 취소했었거든요..

 

구글링을 해보니 allpages -> datarow 로 하기전에 먼저 datapage lock 으로

변경을 먼저 시도해보라고 하던데...흠 어쨋든 제 질문은

혹시 allpages에서 datarow 또는 datapage 로 바꾸는것으로 인한 다른 영향은 없을런지요?

혹 잘못되어 데이터가 날라간다든지 하는...--;;

우동균(ggree1)님이 2014-05-27 23:14에 작성한 댓글입니다.
이 댓글은 2014-05-27 23:58에 마지막으로 수정되었습니다.

1. 일단 clustered index 에 대해서 포기를 해야 합니다.

datarows 와 allpages 에 대한 clustered index 구조가 바뀝니다. 

2.  데이터 손실이 발생되었는 적은 없습니다만,  염려된다면,  select into 같은 쿼리로 복사해 두는 것도 쓸데없는 걱정을 줄이는 방법이 되겠죠.

3. 통계정보를 새로 갱신해줘야 합니다. 앞에서도 말씀드렸습니다만, clustered 인덱스 구조가 바뀜으로 인해, clustered index 크기가 커지는 현상이 발생되어 과거 통계정보가 의미가 없어진다고 판단하는게 맞을 것 같습니다. 

4. 주기적으로 reorg rebuild 를 해줘야 합니다. 통상 1년이라고 얘기합니다만, 테이블에 update나 delete가 많이 발생된다면, 주기가 짧아질 수 있습니다. 

5. 그럼에도 불구하고, lock contention , dead lock, 추가 인덱스 생성등에 따른 관리 시간이 많이 줄어 듭니다. 개인적으로는 temp table 이나 oltp가 아닌 배치성 테이블만 allpages 로 관리하는게 좋다고 생각합니다.

6. 전환에 대한 시간은 bcp 유틸로 SAM 받았다가 해당 테이블 truncate 하고, lock scheme 바꾸고, 다시 bcp in 한 후 인덱스 재생성시는 병렬로 생성 하면,   데이터 있는 상태에서 alter lock scheme 보다는 시간을 줄일 수 있습니다만....   왠지 전문가의 손길이 많이 가야 하는 작업냄새가 나네요...

 

소이화님이 2014-06-09 18:27에 작성한 댓글입니다. Edit

 

답변 감사합니다~^^

우동균(ggree1)님이 2014-06-12 23:08에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4395pda 윈도우모바일 6.0 에서 Sybase 연결 문의 입니다. [1]
펄링스
2014-07-27
4200
4393Sybase ASE 유저 권한에 대한 질문입니다. [1]
박영수
2014-07-10
5671
4392데이타 Insert 시 DB가 죽는 현상(ASE 15.5) [2]
김은진
2014-06-03
6370
4391allpages lock 으로 설정된 테이블을 datarows 로 변경시? [4]
우동균
2014-05-26
4665
4390오라클의 forall, bulk collect 같은 기능 질문 [1]
호야
2014-05-16
4386
4389Sybase ASE 접속 기록 [1]
손병관
2014-05-08
3830
4388Sybase 트랜잭션... [1]
유혁종
2014-05-01
3638
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다