토토 사이트 순위 생성

토토 사이트 순위 생성 - 확장 통계 정의

시놉시스

토토 사이트 순위 작성 [[존재하지 않으면]Statistics_Name]
    에 (표현)
    에서table_name토토 사이트 순위 작성 [[존재하지 않으면]Statistics_Name]
    [(Statistics_kind[, ...])]
    에column_name| (표현),column_name| (표현) [, ...]
    에서table_name

설명

토토 사이트 순위 생성지정된 테이블, 외국 표 또는 구체화 된보기에 대한 새로운 확장 통계 객체 추적 데이터를 생성합니다. 통계 개체는 현재 데이터베이스에서 생성되며 명령을 발행하는 사용자가 소유합니다.

the토토 사이트 순위 생성명령에는 두 가지 기본 양식이 있습니다. 첫 번째 형태는 단일 표현식에 대한 일 변량 통계를 수집 할 수있게하여 인덱스 유지 보수의 오버 헤드없이 식 인덱스와 유사한 이점을 제공합니다. 이 양식은 다양한 통계 종류가 다변량 통계 만 참조하기 때문에 통계 종류를 지정할 수 없습니다. 두 번째 형태의 명령은 여러 열에 대한 다변량 통계 및/또는 표현식을 수집 할 수있게되며, 선택적으로 포함 할 통계 유형을 지정합니다. 이 양식은 또한 목록에 포함 된 모든 표현식에서 단 변량 통계를 자동으로 수집합니다.

스키마 이름이 제공되는 경우 (예 :토토 사이트 순위 작성 myschema.mystat ...) 그러면 통계 객체가 지정된 스키마에서 생성됩니다. 그렇지 않으면 현재 스키마에서 생성됩니다. 주어진 경우 통계 객체의 이름은 동일한 스키마의 다른 통계 객체의 이름과 구별되어야합니다.

매개 변수

존재하지 않으면

동일한 이름의 토토 사이트 순위 개체가 이미 존재하는 경우 오류를 던지지 마십시오. 이 경우 통지가 발행됩니다. 정의의 세부 사항이 아니라 토토 사이트 순위 객체의 이름 만 여기서 고려됩니다. 토토 사이트 순위 이름이 필요합니다존재하지 않으면지정되어 있습니다.

Statistics_Name

생성 할 토토 사이트 순위 개체의 이름 (선택적으로 스키마 자격). 이름이 생략되면PostgreSQL상위 테이블의 이름과 정의 된 열 이름 및/또는 표현식에 따라 적절한 이름을 선택합니다..

Statistics_kind

이 통계 객체에서 계산할 다변량 통계 종류. 현재 지원되는 종류는ndistinct, n- 결정 토토 사이트 순위를 가능하게하는종속성, 기능적 종속성 통계를 가능하게하고MCV대부분의 공통 값 목록을 활성화합니다. 이 조항이 생략되면 모든 지원되는 통계 종류가 통계 객체에 포함됩니다. 통계 정의에 단순한 열 참조가 아닌 복잡한 표현식이 포함 된 경우 단 변량 표현 통계는 자동으로 구축됩니다. 자세한 내용은 참조하십시오.섹션 14.2.2사설 토토 사이트 43_27.

column_name

계산 된 통계로 덮을 테이블 열의 이름. 다변량 통계를 구축 할 때만 허용됩니다. 최소한 두 개의 열 이름이나 표현이 지정되어야하며 순서는 중요하지 않습니다.

표현

계산 된 통계에 의해 다루는 표현식. 이것은 단일 표현식에 대한 일 변량 통계를 구축하는 데 사용될 수 있거나 다변량 통계를 구축하기위한 여러 열 이름 및/또는 표현식의 일부로 사용될 수 있습니다. 후자의 경우, 별도의 일 변량 통계는 목록의 각 표현식에 대해 자동으로 구축됩니다.

table_name

열이 포함 된 테이블의 이름 (선택적으로 스키마 자격)이 계산됩니다. 보다분석상속 및 파티션 처리에 대한 설명.

노트

당신은 그것을 읽는 토토 사이트 순위 객체를 만들려면 테이블의 소유자 여야합니다. 그러나 일단 생성되면 토토 사이트 순위 객체의 소유권은 기본 테이블과 무관합니다.

표현 통계는 표현당이며 인덱스 유지 보수의 오버 헤드를 피하는 것을 제외하고는 표현식에 대한 인덱스를 만드는 것과 유사합니다. 표현 통계는 통계 객체 정의에서 각 표현식에 대해 자동으로 구축됩니다.

확장 된 통계는 현재 테이블 조인에 대한 선택성 추정을 위해 플래너에서 사용하지 않습니다. 이 제한은 향후 버전의에서 제거 될 것입니다.PostgreSQL.

테이블 생성T1기능적으로 종속 된 두 개의 열이있는 경우, 즉 첫 번째 열의 값에 대한 지식은 다른 열의 값을 결정하기에 충분합니다. 그런 다음 기능 의존성 통계는 해당 열을 기반으로합니다.

테이블 생성 t1 (
    int,
    B int
);

T1에 삽입 i/100, i/500을 선택하십시오
                 Generate_series (1,1000000) s (i);

T1 분석;

- 일치하는 행의 수는 크게 과소 평가됩니다.
t1에서 선택 * 선택 * (a = 1) 및 (b = 0)을 설명하십시오.

T1에서 A, B에 통계 S1 (종속성)을 만듭니다.

T1 분석;

- 이제 행 카운트 추정치가 더 정확합니다.
t1에서 선택 * 선택 * 선택 * (a = 1) 및 (b = 0);

기능적 의존성 토토 사이트 순위가 없으면 플래너는 두 사람이 가정 할 것입니다.여기서조건은 독립적이며, 선택성을 함께 곱하여 훨씬 더 작은 행 카운트 추정치에 도달합니다. 그러한 토토 사이트 순위를 통해 플래너는여기서조건은 중복되어 행 카운트를 과소 평가하지 않습니다.

테이블 만들기T2두 개의 완벽하게 상관 관계가있는 열 (동일한 데이터 포함)과 해당 열에 MCV 목록이 포함되어 있습니다.

테이블 생성 t2 (
    int,
    B int
);

T2에 삽입 Mod (I, 100), Mod (I, 100)
                 Generate_series (1,1000000) s (i);

T2에서 A, B에 통계 S2 (MCV)를 생성합니다.

T2 분석;

- 유효한 조합 (MCV에서 발견)
선택 * 선택 *에서 t2에서 (a = 1) 및 (b = 1);

- 유효하지 않은 조합 (MCV에서 찾을 수 없음)
선택 * 선택 *에서 * t2에서 (a = 1) 및 (b = 2);에서 선택하십시오.

MCV 목록은 플래너에게 표에 일반적으로 나타나는 특정 값에 대한 자세한 정보와 표에 나타나지 않는 값 조합의 선택성에 대한 상한에 대한 자세한 정보를 제공하여 두 경우 모두 더 나은 추정치를 생성 할 수 있습니다..

테이블 생성T3단일 타임 스탬프 열이 있는데, 해당 열의 표현식을 사용하여 쿼리를 실행하십시오. 확장 된 통계가 없으면 플래너는 표현식의 데이터 분포에 대한 정보가 없으며 기본 추정치를 사용합니다. 플래너는 또한 달에 잘린 날짜의 가치가 그 날에 잘린 날짜의 가치에 의해 완전히 결정된다는 것을 인식하지 못합니다. 그런 다음 표현식과 NDISTINCT 통계는이 두 표현식을 기반으로합니다.

테이블 생성 t3 (
    타임 스탬프
);

T3에 삽입 Generate_Series ( '2020-01-01':: Timestamp,에서 i를 선택하십시오.
                                             '2020-12-31':: 타임 스탬프,
                                             '1 분':: 간격) s (i);

T3 분석;

- 일치하는 행의 수는 크게 과소 평가됩니다.
T3에서 선택 * 선택 *을 설명하십시오
  여기서 date_trunc ( 'month', a) = '2020-01-01':: timestamp;

T3에서 선택 * 선택 *을 설명하십시오
  여기서 date_trunc ( 'day', a) '2020-01-01':: timestamp 사이
                                 및 '2020-06-30':: 타임 스탬프;

Select Date_trunc ( 'Month', A), Date_trunc ( 'Day', A) 분석 설명
   1, 2까지 T3 그룹으로부터;

-표현식 쌍에 대한 ndistinct 통계를 구축
- 통계는 자동으로 구축됩니다)
t3에서 date_trunc ( 'month', a), date_trunc ( 'day', a)에서 통계 S3 (ndistinct) 생성;

T3 분석;

- 이제 행 카운트 추정치가 더 정확합니다.
T3에서 선택 * 선택 *을 설명하십시오
  여기서 date_trunc ( 'month', a) = '2020-01-01':: timestamp;

T3에서 선택 * 선택 *을 설명하십시오
  여기서 date_trunc ( 'day', a) '2020-01-01':: timestamp 사이
                                 및 '2020-06-30':: 타임 스탬프;

Select Date_trunc ( 'Month', A), Date_trunc ( 'Day', A) 분석 설명
   T3 그룹에서 1, 2;

표현 및 ndistinct 통계가 없으면, 플래너는 표현식의 고유 한 값 수에 대한 정보가 없으며 기본 추정에 의존해야합니다. 평등 및 범위 조건은 0.5% 선택성을 갖는 것으로 가정되며, 표현식의 뚜렷한 값의 수는 열과 동일하다고 가정합니다 (즉, 고유). 이로 인해 처음 두 쿼리에서 행 카운트가 크게 과소 평가됩니다. 또한 플래너는 표현 간의 관계에 대한 정보가 없으므로 두 가지를 가정합니다.여기서and그룹 by조건은 독립적이며, 선택성을 함께 곱하여 집계 쿼리에서 그룹 수의 심각한 과대 평가에 도달합니다. 이는 표현에 대한 정확한 통계가 없음으로써 더욱 악화되며, 플래너는 열에 대한 ndistinct에서 파생 된 표현식에 대한 기본 NDistinct 추정치를 사용하도록 강요합니다. 이러한 통계를 통해 플래너는 조건이 상관 관계가 있음을 인식하고 훨씬 더 정확한 추정치에 도달합니다.

호환성

없음토토 사이트 순위 생성SQL 표준의 명령.

정정 제출

문서에 올바른 것이 없다면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면