테이블 컬럼의 선태도를 구하는 쿼리

2010. 12. 19. 13:19오라클


select column_name
,num_distinct
,num_nulls
,1/num_distinct selectivity
,round(1/num_distinct * t.num_rows,2) cardinality
from user_tables t, user_tab_columns c
where t.table_name = '고객'
and c.table_name = t.table_name
order by column_id;

선택도는 각 컬럼의 값의 종류를 전체 로우수로 백분율을 구한 값이고
카디널리티는 백분율에 전체로우수를 곱한 것이다.
전체로우수가 큰 경우에는 선택도가 꼭 정확하지 않을 수 있다.