본문으로 건너뛰기
최종 수정: 에

ANALYZE

설명​

이 문은 열 통계를 수집하는 데 사용합니다. 테이블의 열 통계를 수집하거나(특정 열을 지정할 수 있음) 데이터베이스 전체의 열 통계를 수집할 수 있습니다.

구문​

ANALYZE {TABLE <table_name> [ (<column_name> [, ...]) ] | DATABASE <database_name>}
[ [ WITH SYNC ] [ WITH SAMPLE {PERCENT | ROWS} <sample_rate> ] [ WITH HOT VALUE ] ];

필수 매개변수​

1. <table_name>

대상 테이블을 지정합니다. 이 매개변수와 <database_name> 매개변수 중 반드시 하나만 지정해야 합니다.

2. <database_name>

대상 데이터베이스를 지정합니다. 이 매개변수와 <table_name> 매개변수 중 반드시 하나만 지정해야 합니다.

선택적 매개변수​

1. <column_name>

대상 열을 지정합니다. table_name에 존재하는 열이어야 합니다. 쉼표로 구분하여 여러 열 이름을 지정할 수 있습니다.

2. WITH SYNC

통계를 동기적으로 수집합니다. 수집이 완료된 후 반환합니다. 지정하지 않으면 비동기적으로 실행합니다.

3. WITH SAMPLE {PERCENT | ROWS} <sample_rate>

샘플링 방식으로 통계를 수집하도록 지정합니다. 지정하지 않으면 기본적으로 전체 데이터를 대상으로 통계를 수집합니다. <sample_rate>는 샘플링 매개변수입니다. PERCENT 샘플링을 사용하면 샘플링 비율을 지정하고, ROWS 샘플링을 사용하면 샘플링할 행 수를 지정합니다.

4. WITH HOT VALUE

수동 전체 수집 시 핫 값을 수집하도록 지정합니다. 핫 값은 옵티마이저가 편중된 데이터에 대한 조건자를 더 정확하게 추정하는 데 도움이 되지만, 카디널리티가 높은 열에서 핫 값을 수집하면 메모리 사용량이 늘어날 수 있습니다. 이 옵션을 지정하지 않으면 Doris는 기존 동작을 유지합니다. 전체 수집에서는 핫 값을 수집하지 않고, 샘플링 수집에서는 항상 핫 값을 수집합니다. WITH HOT VALUE를 WITH SAMPLE과 함께 사용하면 거부됩니다.

반환 값​

열설명
Job_Id고유 작업 ID
Catalog_NameCatalog 이름
DB_Name데이터베이스 이름
Columns열 이름 목록

접근 제어 요구 사항​

이 SQL을 실행하는 사용자는 최소한 다음 권한을 보유해야 합니다.

권한객체설명
SELECT_PRIV테이블ANALYZE를 실행하려면 쿼리 대상 테이블에 대한 SELECT_PRIV 권한이 필요합니다.

예시​

  1. lineitem 테이블의 10%를 샘플링하여 통계를 수집합니다.
ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10;
  1. lineitem 테이블에서 100,000개 행을 샘플링하여 통계를 수집합니다.
ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000;
  1. 전체 통계와 핫 값을 수집합니다.
ANALYZE TABLE lineitem WITH SYNC WITH HOT VALUE;