켄 헨더슨씨가 쓴 '강력한 SQL 프로그래밍을 위한 T-SQL'이라는 책에 보면, 제목에 해당하는 글이 나온다.

 

identity가 걸린 pk컬럼에 index를 생성하는 것은 최적화된 방법이 아닌데, 그 이유는

 

1. 특정 범위의 키 값에 대하여 테이블을 쿼리할 수 없고 순차적 pk 컬럼에 대하여 ORDER BY를 수행할 수 없기 때문이다.

2. clustered identity pk는 사용자들이 테이블에 로우를 추가할 때 데이터베이스의 동일한 영역에 대하여 경합이 벌어지게 할 수 있는데, 이를 'hot sopt'이라 한다.

 

라고 기술하고 있습니다.

 

이 글을 읽다가... 저는 그런 단점말고 아래와 같은 다른 장점도 있다는 생각을 평소에 하고 있었습니다.

 

a. clustered identity pk는 순차 증가하므로, index 및 data page의 재정렬 작업이 마지막 페이지에서만 일어난다.

b. clustered identity pk는 update가 발생하지 않는다. (물론 identity가 아니더라도 update가 발생하진 않겠지만, 발생할 수도 있다는 가정하에..) 그러므로 1번과 마찬가지로 index 및 data page의 재정렬 작업이 발생하지 않는다.

 

그래서 이런 내용에 대한 논의가 있을거라는 생각에 웹에서 검색을 해 봤습니다.

 

 

 

 


..more


+ Recent posts