다변량 상관 관계는 매우 간단한 데이터 세트로 입증 될 수 있습니다. 두 개의 열이있는 테이블은 모두 동일한 값을 포함합니다.
생성 테이블 t (a int, b int);
설명 된대로섹션 14.2, 플래너는의 카디널리티를 결정할 수 있습니다.t
에서 얻은 페이지와 행을 사용하여PG_CLASS
:
relname = 't'에서 pg_class에서 관계, reltuples를 선택하십시오.
데이터 배포는 매우 간단합니다. 각 열에는 균일하게 분포 된 각 열에 100 개의 별개의 값 만 있습니다.
다음 예제는 A를 추정 한 결과를 보여줍니다여기서
상태에서의 조건a
열 :
설명 (분석, 타이밍 꺼짐) 선택 *에서 t에서 a = 1;
플래너는 조건을 검사 하고이 조항의 선택성을 1%로 결정합니다. 이 추정치와 실제 행 수를 비교함으로써, 우리는 추정치가 매우 정확하다는 것을 알 수 있습니다 (실제로 테이블이 매우 작기 때문에 정확합니다).어디
사용 조건B
열에서 동일한 계획이 생성됩니다. 그러나 두 열에 동일한 조건을 적용하면를 결합하면 어떻게되는지 확인하십시오.and
:
설명 (분석, 타이밍 꺼짐) * 선택 *에서 a = 1 및 b = 1;
플래너는 각 조건의 선택성을 개별적으로 추정하여 상기와 동일한 1% 추정치에 도달합니다. 그런 다음 조건이 독립적이라고 가정하므로 선택성을 곱하여 최종 선택성 추정치가 0.01%에 불과합니다.
이 문제는 지시하는 사설 토토 객체를 만들어 해결할 수 있습니다분석
두 열에서 기능적 의존성 다변량 사설 토토를 계산하려면 :
t에서 a, b에서 사설 토토 Stts (종속성) 생성;
a에 의해 생성 될 그룹의 수와 같은 여러 열 집합의 카디널리티 추정치와 비슷한 문제가 발생합니다.그룹 by
절. 언제그룹 by
단일 열, n- 결정적인 추정치 (해 순서 그레이트 노드에 의해 반환 된 추정 행 수에 따라 볼 수 있음)를 나열합니다. 매우 정확합니다.
설명 (분석, 타이밍 꺼짐) T 그룹에서 Count (*)를 선택하여 a;
그러나 다변량 사설 토토가 없으면 두 개의 열이있는 쿼리의 그룹 수에 대한 추정치그룹 by
, 다음 예에서와 같이, 크기는 꺼져 있습니다 :
설명 (분석, 타이밍 꺼짐) T Group에서 Count (*)를 선택하여 A, B;
두 열에 대한 n- 결정 수를 포함하도록 사설 토토 개체를 재정의하면 추정치가 훨씬 향상되었습니다.
드롭 사설 토토 Stts;