데이터베이스 설계와 구축(개정판) (2009년)
효율적인 채번 방법을 통한 성능향상 0 0 57,764

by 구루비스터디 성능 데이터 모델링 [2019.08.11]


8.7 효율적인 채번 방법을 통한 성능향상

  • 대체 식별자인 일련변호 체계를 사용하는 데이터 모델에서는 반드시 채번(PK값을 증가하는 형식으로 생성하는 것)을 해야 하는데, 이때 채번을 하기 위해 사용된 테이블로 인해 성능저하가 나타는 경우가 많다.


8.7.1 채번 테이블 사용으로 인한 성능 저하

  • 다음 데이터 모델은 해당 테이터베이스에 발생되는 모든 트랜잭션의 정보를 보관하여 추적하기 위해 설계한 트랜잭션 LOG라는 업무 테이블이다.
  • 이 테이블에서 PK는 로그번호로서, 일련번호의 형식이며, 채번 테이블을 통해 속성값을 가져온다. 채번 테이블에슨 채번구분에 따라 항상 하나의 레코드만 존재하여 맨 마지막에 생성된 번호만을 채번이라는 속성값에 가지고 있는 구조다. 채번 구분은 채번 테이블을 다른 업무 테이블이 여러개 일 때 이를 구분하는 구분자다.

  • 그림 8-26에서 나타나듯이 채번 테이블의 특지은 먼저 채번의 속성값을 채번 속성값+1 로 수정한 후 업무테이블에 데이터를 입력하고, 커밋해야 트랜잭션이 종료되는 특징이 있다.
  • 따라서 입력작업이 길어지면 잠금 현상으로 인해 대기 현상도 길어져 문제가 되는 경우가 많다. 특히 동시에 여러 트랜잭션이 집중적으로 시스템을 이용할 때 CPU 자원이 부족하여 대기시간을 가중시키고, 따라서 심각한 성능 문제를 야기하는 경우가 자주 있다.


8.7.2 채번의 세 가지 방법

  • 만약 트랜잭션이 아주 많지 않고 이론적으로 발생하는 데이터 중복 에러(Data Duplication Error)에 대해 애플리케이션에서 보완처리(예를 들어, 입력을 2회 반복 실행)할 수 있다면 방법 (2)를 권한다. 웬만한 양의 트랜잭션에서는 중복 에러가 거의 발생하지 않는다. 트랜잭션양의 대량으로 발생된다면 방법(3)인 시퀀스 오브젝트 이용을 권한다
"구루비 데이터베이스 스터디모임" 에서 2009년에 "데이터베이스 설계와 구축(개정판)" 도서를 스터디하면서 정리한 내용 입니다.

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

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

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

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