> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> `MergeTree` 읽기 파이프라인에서 쿼리 실행 중 수집된 샘플링된 필터 및 인덱스 선택도 통계를 담고 있는 시스템 테이블.

# system.predicate_statistics_log

<Info>
  **ClickHouse Cloud에서 쿼리하기**

  이 시스템 테이블의 데이터는 ClickHouse Cloud의 각 노드에 로컬로 저장됩니다. 따라서 전체 데이터를 모두 확인하려면 `clusterAllReplicas` 함수를 사용해야 합니다. 자세한 내용은 [여기](/ko/reference/system-tables/overview#system-tables-in-clickhouse-cloud)를 참조하십시오.
</Info>

<div id="description">
  ## 설명
</div>

`MergeTree` 테이블을 읽는 동안 수집된 샘플 선택도 통계를 포함합니다. 이 테이블은 [`predicate_statistics_sample_rate`](/ko/reference/settings/session-settings#predicate_statistics_sample_rate)가 `0`보다 클 때만 채워집니다.

이 테이블을 사용하면 실제 워크로드에서 사용자 프레디케이트의 선택도가 어느 정도인지, 그리고 기본 키 또는 스킵 인덱스 필터링 후 그래뉼이 몇 개 남는지 확인할 수 있습니다. 이 데이터는 워크로드 기반 인덱스 및 프로젝션 권장 사항을 위한 입력으로 사용됩니다.

<div id="row-shapes">
  ## 행 형태
</div>

하나의 쿼리는 `system.predicate_statistics_log`에 두 가지 종류의 행을 생성할 수 있습니다.

* **필터 행**: `MergeTreeSelectProcessor`의 각 prewhere/filter 단계마다 생성됩니다. 이 행에는 `predicate_expression`, `input_rows`, `passed_rows`, `filter_selectivity`와 전체 프레디케이트 컬럼인 `total_input_rows`, `total_passed_rows`, `total_selectivity`가 채워집니다. 인덱스 관련 컬럼은 비어 있습니다.
* **인덱스 행**: `ReadFromMergeTree`의 각 읽기 단계마다 생성됩니다. 이 행에는 `index_names`, `index_types`, `total_granules`, `granules_after`, `index_selectivities` 배열이 채워지며, 각 인덱스 단계(프라이머리 키, 파티션, 스킵 인덱스)마다 항목이 하나씩 들어갑니다. 프레디케이트 관련 컬럼은 비어 있습니다.

동일한 쿼리의 필터 행과 인덱스 행은 같은 `query_id`와 `table`을 공유하므로, 둘 다 필요하면 조인할 수 있습니다.

<div id="sampling-and-overhead">
  ## 샘플링과 오버헤드
</div>

샘플링은 [`predicate_statistics_sample_rate`](/ko/reference/settings/session-settings#predicate_statistics_sample_rate)로 제어합니다:

* `0`은 수집을 비활성화합니다.
* `1`은 모든 쿼리를 샘플링합니다.
* `N > 1`은 `query_id`를 해시해 쿼리의 약 `1 / N`을 샘플링합니다.

값이 낮을수록 더 많은 데이터가 생성되지만, 읽기 경로의 CPU 사용량이 늘어나고 시스템 로그 쓰기도 증가합니다. 설정을 활성화한 후 행이 즉시 나타나야 한다면 [`SYSTEM FLUSH LOGS`](/ko/reference/statements/system#flush-logs)를 사용하십시오.

<div id="columns">
  ## 컬럼
</div>

* `hostname` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 쿼리를 실행한 서버의 호스트명입니다.
* `event_date` ([Date](/ko/reference/data-types/date)) — 이벤트 날짜입니다.
* `event_time` ([DateTime](/ko/reference/data-types/datetime)) — 이 로그 항목이 기록된 시점의 타임스탬프입니다.
* `database` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 대상 테이블이 속한 데이터베이스 이름입니다.
* `table` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 대상 테이블의 이름입니다.
* `query_id` ([String](/ko/reference/data-types/string)) — query\_log와 연결하기 위한 Query ID입니다.
* `predicate_expression` ([String](/ko/reference/data-types/string)) — 이 prewhere/filter 단계에서 처리되는 전체 필터 표현식입니다 (ActionsDAG dump).
* `input_rows` ([UInt64](/ko/reference/data-types/int-uint)) — 이 prewhere/filter 단계에 입력되는 행 수입니다.
* `passed_rows` ([UInt64](/ko/reference/data-types/int-uint)) — 이 prewhere/filter 단계를 통과한 행 수입니다.
* `filter_selectivity` ([Float64](/ko/reference/data-types/float)) — 이 단계의 선택도입니다: passed\_rows / input\_rows.
* `total_input_rows` ([UInt64](/ko/reference/data-types/int-uint)) — 첫 번째 prewhere 단계에 입력되는 행 수입니다 (그래뉼에서 읽은 전체 행 수).
* `total_passed_rows` ([UInt64](/ko/reference/data-types/int-uint)) — 모든 prewhere 단계를 통과한 행 수입니다 (쿼리로 전달된 행 수).
* `total_selectivity` ([Float64](/ko/reference/data-types/float)) — 전체 프레디케이트의 선택도입니다: total\_passed\_rows / total\_input\_rows.
* `index_names` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 적용된 인덱스 이름입니다. 예: \['PrimaryKey', 'idx\_bf\_status'] (인덱스 행에만 해당).
* `index_types` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 적용된 인덱스 타입입니다: PrimaryKey, Skip, MinMax, Partition (인덱스 행에만 해당).
* `total_granules` ([Array(UInt64)](/ko/reference/data-types/array)) — 각 인덱스 단계에 입력되는 그래뉼 수입니다 (인덱스 행에만 해당).
* `granules_after` ([Array(UInt64)](/ko/reference/data-types/array)) — 각 인덱스 단계 후에 남는 그래뉼 수입니다 (인덱스 행에만 해당).
* `index_selectivities` ([Array(Float64)](/ko/reference/data-types/array)) — 인덱스별 선택도입니다: granules\_after / total\_granules (인덱스 행에만 해당).

<div id="example">
  ## 예시
</div>

```sql theme={null}
SET predicate_statistics_sample_rate = 1;

SELECT *
FROM hits
WHERE URL LIKE '%/product/%' AND EventDate >= today() - 7
FORMAT Null;

SYSTEM FLUSH LOGS predicate_statistics_log;

SELECT
    query_id,
    predicate_expression,
    round(filter_selectivity, 3) AS step_selectivity,
    round(total_selectivity, 3) AS query_selectivity,
    index_names,
    index_selectivities
FROM system.predicate_statistics_log
WHERE table = 'hits'
ORDER BY event_time DESC
LIMIT 10;
```

<div id="see-also">
  ## 관련 항목
</div>

* [`predicate_statistics_sample_rate`](/ko/reference/settings/session-settings#predicate_statistics_sample_rate)
* [system.query\_log](/ko/reference/system-tables/query_log)
