category Key 와 post key 를 복합키로 클러스터드 인덱스가 될때
카테고리와 카테고리 사이에 게시물이 등록(특정 카테고리의 새 게시물) 되더라도 인덱스에 문제가 없는지요..
예
category A post 1
<-- category A post 5
...
category B post 2
category C post 3
<-- category C post 6
category D post 4
새로 게시되는 게시물이 category가 다르기 때문에
클러스터드 인덱스를 걸면 물리적 위치가 변하는 것인지 궁금합니다.
이런식으로 하면 인덱스가 변경되어 성능이 떨어지는지가 궁금합니다.
Comment 1
-
이스트럭(강동운)
2013.10.18 00:16
안녕하세요~!
결론적으로 말씀드리면..다들 이렇게 쓰고 있습니다~^^
다만.. 클러스터드 인덱스가 다른 값으로 업데이트가 된다는 성능상 영향은 있습니다.(하단 글 참고하시기 바랍니다)
예를들면.. category나 post값이 변하는 것이죠.
sql server에는 데이터를 저장하기 위해 8kb짜리 페이지에 차곡차곡 담게 됩니다.
만약 1 row의 사이즈가 100 bytes라고 가정하면 약 80개 정도 들어가신다고 보면 됩니다.
이렇게.. 1 페이지가 80개의 row로 가득차게되었을 때 ... 중간에 낑겨들어가기 위해 insert를 해야 한다면..
split이라는게 발생하게 됩니다.
split이 발생하면 .. 새로운 페이지가 할당이 되고.. 데이터가 50:50으로 나뉘게 됩니다.
더욱 자세한 내용은...
SQL Server 데이터 아키텍처쪽을 공부하시길 권해드립니다.
Inside SQL Server 2000
SQL SERVER 2000 2005 튜닝 (전문가로 가는 지름길 3)
영문이지만 SQL Server 2008 Internals에 자세히 나와있습니다.
아래 글은 참고해서 보시길 바랍니다~
CLUSTERED INDEX를 업데이트 하지 말아야 하는 이유(물리적) http://www.sqler.com/331033
split과 fillfactor: http://www.sqler.com/327152
향지군 블로그: http://blog.naver.com/jumdol625?Redirect=Log&logNo=110168581449
감사합니다~^^