트러블슈팅 오라클 퍼포먼스 2판 (2017년)
선택도와 카디널리티 0 0 48,602

by 구루비스터디 선택도 카디널리티 Cardinality [2023.09.08]


선택도와 카디널리티

선택도

  • 전체 중 몇 개의 Row 반환 할지를 0 ~ 1 사이 값으로 표시
  • 120개 Row 중 18개 반환 시 선택도는 0.15(18/120)
  • 0 : 강함(높음,좋음) ~ 1 : 약함(낮음,나쁨)


카디널리티

  • 오퍼레이션에 의해 반환된 Row 수
  • Cardinality = Selectivity * Num_rows
  • 릴레이션(Relation)에서 튜플(Tuple)의 수




-- 선택도 : 1 (카디널리티 = 전체 Row 수)
SQL> SELECT * FROM t;
...
1000 rows selected.

-- 선택도 : 0.2601
SQL> SELECT * from t WHERE n1 BETWEEN 6000 AND 7000;
...
2601 rows selected.

-- 선택도 : 0
SQL> SELECT * FROM t where n1 = 19;

no rows selected.

-- 선택도 계산 불가 : 액세스 오퍼레이션의 반환 Row 수 필요
SQL> SELECT sum(n2) FROM t WHERE n1 BETWEEN 6000 AND 7000;

   SUM(N2)
----------
     70846

1 row selected.

-- 선택도 : 0.2601 (2601/10000)
SQL> SELECT count(*) FROM t WHERE n1 BETWEEN 6000 AND 7000;

  COUNT(*)
----------
      2601

1 row selected.



  • 오퍼레이션의 선택도를 알고 있으면, 가장 효율적인 액세스 패스 결정 가능
"데이터베이스 스터디모임" 에서 2017년에 "전문가를 위한 트러블슈팅 오라클 퍼포먼스(Second Edition) " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4332

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입