Clustering Factor

2022. 4. 17. 22:38DB/일반

Clustering Factor란

Clustering Factor란 Index의 테이블에 대한 정렬 정도를 의미합니다. 정렬 정도를 측정하기 위해 DB는 Index를 scan하는 동안 방문하게 되는 Table의 데이터 블록의 갯수로 나타냅니다. 이는 Clustering Factor가 높아지면 읽어들이는 Data Block의 갯수가 많아지기 때문에 Physical Read가 높게 나온다는 것을 의미합니다. Physical Read는 성능과 밀접한 관련이 있기 때문에 Clustering Factor를 최소화하는 것이 튜닝의 중요 요소 중 하나라고 할 수 있습니다.

Good Clustering Factor

Good Clustering Factor란 Index 순서와 Table의 순서가 거의 완벽하게 일치하는 것을 말합니다.\

Bad Clustering Factor

Bad Clustering Factor는 위와 반대로 Index 순서와 Table의 순서가 일치하지 않는 경우를 말합니다. Clustering Factor가 가장 나쁜 경우에는 Clustering Factor가 table의 row 수만큼 발생하게 됩니다. 이런 경우에는 전체 Data Block에서 1%의 데이터만 읽어도 Table Full Scan을 하는 경우보다 더 많은 Cost가 발생하기 때문에 CBO가 Table Full Scan을 선택하는 경우가 발생합니다.

728x90

'DB > 일반' 카테고리의 다른 글

Timestamp, Datetime  (0) 2023.06.19
SQL SELECT 쿼리문 문법 순서와 실행 순서  (0) 2023.03.11
Optimizer  (0) 2022.04.03
Index Scan 종류  (0) 2022.03.31