"선택도 카디널리티 Selectivity vs. Cardinality"의 두 판 사이의 차이
DB CAFE
잔글 (Dbcafe님이 선택도 카디날리티 문서를 선택도 카디널리티 Selectivity vs. Cardinality 문서로 이동했습니다) |
(→선택도) |
||
1번째 줄: | 1번째 줄: | ||
== 선택도와 카디널리티 == | == 선택도와 카디널리티 == | ||
− | === 선택도 === | + | === 선택도 , Selectivity === |
# 오퍼레이션이 전체 로우중 몇개의 로우를 조회 할지 나타내는 0 과 1 사이의 값 | # 오퍼레이션이 전체 로우중 몇개의 로우를 조회 할지 나타내는 0 과 1 사이의 값 | ||
# 예를 들어 , 120개의 로우을 읽은 다음 18개의 로우를 반환한다면 18/120 = 0.15 (15%) | # 예를 들어 , 120개의 로우을 읽은 다음 18개의 로우를 반환한다면 18/120 = 0.15 (15%) | ||
# 선택도가 0에 가까울 수록 강하다(좋다) , 1에 가까울 수록 약하다(나쁘다)고 말한다. | # 선택도가 0에 가까울 수록 강하다(좋다) , 1에 가까울 수록 약하다(나쁘다)고 말한다. | ||
# where 절이 없이 테이블을 조회 하면 선택도는 1이 된다. | # where 절이 없이 테이블을 조회 하면 선택도는 1이 된다. | ||
+ | |||
=== 카디널리티 === | === 카디널리티 === | ||
# 오퍼레이션에 의해서 조회된 로우의 수를 카디널리티라고 한다 | # 오퍼레이션에 의해서 조회된 로우의 수를 카디널리티라고 한다 |
2024년 1월 19일 (금) 16:19 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 선택도와 카디널리티[편집]
1.1 선택도 , Selectivity[편집]
- 오퍼레이션이 전체 로우중 몇개의 로우를 조회 할지 나타내는 0 과 1 사이의 값
- 예를 들어 , 120개의 로우을 읽은 다음 18개의 로우를 반환한다면 18/120 = 0.15 (15%)
- 선택도가 0에 가까울 수록 강하다(좋다) , 1에 가까울 수록 약하다(나쁘다)고 말한다.
- where 절이 없이 테이블을 조회 하면 선택도는 1이 된다.
1.2 카디널리티[편집]
- 오퍼레이션에 의해서 조회된 로우의 수를 카디널리티라고 한다
- 카디널리티 = 선택도 * Num_rows(처리된 로우 수)
- where 절이 없이 테이블(10,000건)을 조회하여 10,000 중 2,601건이 조회 되면 카디널리티는 2601이 된다.(선택도는 0.2601)
1.3 선택도 와 카디날리티 조회 SQL[편집]
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 = :tbl
and c.table_name = t.table_name
order by column_id ;
- 선택도 : 1 / distinct값의 갯수
- 카디널리티 : 선택도 * 로우건수