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

> Tabela do sistema que contém estatísticas amostradas de seletividade de filtros e índices coletadas dos pipelines de leitura `MergeTree` durante a execução de consultas.

# system.predicate_statistics_log

<Info>
  **Consultas no ClickHouse Cloud**

  Os dados nesta tabela de sistema são mantidos localmente em cada nó do ClickHouse Cloud. Portanto, para obter uma visão completa de todos os dados, é necessário usar a função `clusterAllReplicas`. Consulte [aqui](/pt-BR/reference/system-tables/overview#system-tables-in-clickhouse-cloud) para mais detalhes.
</Info>

<div id="description">
  ## Descrição
</div>

Contém estatísticas amostrais de seletividade coletadas durante a leitura de tabelas `MergeTree`. A tabela é preenchida somente quando [`predicate_statistics_sample_rate`](/pt-BR/reference/settings/session-settings#predicate_statistics_sample_rate) é maior que `0`.

Use esta tabela para inspecionar quão seletivos são os predicados definidos pelo usuário em cargas de trabalho reais e quantos grânulos permanecem após a filtragem por chave primária ou índice de salto. Esses dados servem como entrada para recomendações de índices e projeções orientadas pela carga de trabalho.

<div id="row-shapes">
  ## Estruturas de linha
</div>

Uma única consulta pode produzir dois tipos de linhas em `system.predicate_statistics_log`:

* **Linhas de filtro**, emitidas por etapa de prewhere/filter em `MergeTreeSelectProcessor`. Elas preenchem `predicate_expression`, `input_rows`, `passed_rows`, `filter_selectivity` e as colunas do predicado completo `total_input_rows`, `total_passed_rows` e `total_selectivity`. As colunas relacionadas a índices ficam vazias.
* **Linhas de índice**, emitidas por etapa de leitura em `ReadFromMergeTree`. Elas preenchem os arrays `index_names`, `index_types`, `total_granules`, `granules_after` e `index_selectivities`, com uma entrada por estágio de índice (chave primária, partição, índice de salto). As colunas relacionadas a predicados ficam vazias.

As linhas de filtro e as linhas de índice da mesma consulta compartilham o mesmo `query_id` e a mesma `table`, portanto podem ser combinadas quando ambas forem necessárias.

<div id="sampling-and-overhead">
  ## Amostragem e sobrecarga
</div>

A amostragem é controlada por [`predicate_statistics_sample_rate`](/pt-BR/reference/settings/session-settings#predicate_statistics_sample_rate):

* `0` desativa a coleta.
* `1` amostra todas as consultas.
* `N > 1` amostra aproximadamente `1 / N` das consultas, com base no hash de `query_id`.

Valores menores geram mais dados, mas aumentam o trabalho de CPU no caminho de leitura e o número de gravações nos logs do sistema. Após habilitar a configuração, use [`SYSTEM FLUSH LOGS`](/pt-BR/reference/statements/system#flush-logs) se precisar que as linhas apareçam imediatamente.

<div id="columns">
  ## Colunas
</div>

* `hostname` ([LowCardinality(String)](/pt-BR/reference/data-types/lowcardinality)) — Hostname do servidor que executa a consulta.
* `event_date` ([Date](/pt-BR/reference/data-types/date)) — Data do evento.
* `event_time` ([DateTime](/pt-BR/reference/data-types/datetime)) — Timestamp de quando esta entrada de log foi registrada.
* `database` ([LowCardinality(String)](/pt-BR/reference/data-types/lowcardinality)) — Nome do banco de dados da tabela de destino.
* `table` ([LowCardinality(String)](/pt-BR/reference/data-types/lowcardinality)) — Nome da tabela de destino.
* `query_id` ([String](/pt-BR/reference/data-types/string)) — ID da consulta para vinculação ao query\_log.
* `predicate_expression` ([String](/pt-BR/reference/data-types/string)) — Expressão de filtro completa processada por esta etapa de prewhere/filtro (dump do ActionsDAG).
* `input_rows` ([UInt64](/pt-BR/reference/data-types/int-uint)) — Linhas que entram nesta etapa de prewhere/filtro.
* `passed_rows` ([UInt64](/pt-BR/reference/data-types/int-uint)) — Linhas que passam por esta etapa de prewhere/filtro.
* `filter_selectivity` ([Float64](/pt-BR/reference/data-types/float)) — Seletividade desta etapa: passed\_rows / input\_rows.
* `total_input_rows` ([UInt64](/pt-BR/reference/data-types/int-uint)) — Linhas que entram na primeira etapa de prewhere (total de linhas lidas dos grânulos).
* `total_passed_rows` ([UInt64](/pt-BR/reference/data-types/int-uint)) — Linhas que passam por todas as etapas de prewhere (linhas entregues à consulta).
* `total_selectivity` ([Float64](/pt-BR/reference/data-types/float)) — Seletividade de todo o predicado: total\_passed\_rows / total\_input\_rows.
* `index_names` ([Array(LowCardinality(String))](/pt-BR/reference/data-types/array)) — Nomes dos índices aplicados, por exemplo \['PrimaryKey', 'idx\_bf\_status'] (somente linhas de índice).
* `index_types` ([Array(LowCardinality(String))](/pt-BR/reference/data-types/array)) — Tipos de índices aplicados: PrimaryKey, Skip, MinMax, Partition (somente linhas de índice).
* `total_granules` ([Array(UInt64)](/pt-BR/reference/data-types/array)) — Grânulos que entram em cada estágio de índice (somente linhas de índice).
* `granules_after` ([Array(UInt64)](/pt-BR/reference/data-types/array)) — Grânulos restantes após cada estágio de índice (somente linhas de índice).
* `index_selectivities` ([Array(Float64)](/pt-BR/reference/data-types/array)) — Seletividade de cada índice: granules\_after / total\_granules (somente linhas de índice).

<div id="example">
  ## Exemplo
</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">
  ## Veja também
</div>

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