2008/02/14 20:32
[분류없음]
푸름조아 님의 블로그에 DUAL 테이블의 cardinality 계산에 관한 글이 올라왔다.
Cardinality 즉 CDN 이 41, 1, 4072 등으로 다양하게 계산되고 있는데
41 과 4072 는 일반적으로 통계값이 없는 테이블의 CDN 계산법에 의한 것으로 보인다.
http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/stats.htm#i41866
위의 오라클 다큐멘테이션에 보면 CDN 계산 공식은 다음과 같다.
num_of_blocks * (block_size - cache_layer) / avg_row_len
블럭 사이즈를 4K로 가정하고 실제 값을 대입해 보면 100 * (4096 - 24) / 100 = 4072블럭 사이즈가 8K 라면 8168 이 나온다.
41 과 4072 값은 num_of_blocks 수가 GTT(Global Temporary Table 추정) 일 때는 100,
일반 Heap Table 인 경우는 1 이므로 발생하는 것으로 보인다.
어쨌든 오라클 버전에 따라서, Optimizer Mode 에 따라서 dual 테이블의 타입 및 기타 CDN 계산 방법의
logic 이 많이 변경되어 온 듯 하다.



