> ## 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.

> Tabla del sistema que contiene estadísticas muestreadas de selectividad de filtros e índices recopiladas a partir de pipelines de lectura de `MergeTree` durante la ejecución de consultas.

# system.predicate_statistics_log

<Info>
  **Consultas en ClickHouse Cloud**

  Los datos de esta tabla del sistema se almacenan localmente en cada nodo de ClickHouse Cloud. Por lo tanto, para obtener una vista completa de todos los datos, es necesario usar la función `clusterAllReplicas`. Consulta [aquí](/es/reference/system-tables/overview#system-tables-in-clickhouse-cloud) para más detalles.
</Info>

<div id="description">
  ## Descripción
</div>

Contiene estadísticas de selectividad obtenidas por muestreo durante la lectura de tablas `MergeTree`. La tabla se rellena solo cuando [`predicate_statistics_sample_rate`](/es/reference/settings/session-settings#predicate_statistics_sample_rate) es mayor que `0`.

Use esta tabla para examinar hasta qué punto son selectivos los predicados de usuario en cargas de trabajo reales y cuántos gránulos quedan después del filtrado por clave primaria o por índice de omisión. Los datos sirven de entrada para recomendaciones de índices y proyecciones basadas en la carga de trabajo.

<div id="row-shapes">
  ## Estructura de las filas
</div>

Una sola consulta puede producir dos tipos de filas en `system.predicate_statistics_log`:

* **Filas de filtro**, emitidas en cada paso de prewhere/filtro en `MergeTreeSelectProcessor`. Completan `predicate_expression`, `input_rows`, `passed_rows`, `filter_selectivity` y las columnas del predicado completo `total_input_rows`, `total_passed_rows`, `total_selectivity`. Las columnas relacionadas con índices quedan vacías.
* **Filas de índice**, emitidas en cada paso de lectura en `ReadFromMergeTree`. Completan los arrays `index_names`, `index_types`, `total_granules`, `granules_after` e `index_selectivities`, con una entrada por cada etapa del índice (clave primaria, partición, índices de omisión). Las columnas relacionadas con predicados quedan vacías.

Las filas de filtro y las filas de índice de la misma consulta comparten el mismo `query_id` y la misma `table`, por lo que se pueden unir cuando se necesiten ambas.

<div id="sampling-and-overhead">
  ## Muestreo y sobrecarga
</div>

El muestreo se controla con [`predicate_statistics_sample_rate`](/es/reference/settings/session-settings#predicate_statistics_sample_rate):

* `0` desactiva la recopilación.
* `1` toma una muestra de cada consulta.
* `N > 1` toma muestras de aproximadamente `1 / N` de las consultas, aplicando hash a `query_id`.

Los valores más bajos generan más datos, pero añaden carga de CPU en la ruta de lectura y más escrituras en el log del sistema. Después de habilitar este ajuste, usa [`SYSTEM FLUSH LOGS`](/es/reference/statements/system#flush-logs) si necesitas que las filas aparezcan de inmediato.

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

* `hostname` ([LowCardinality(String)](/es/reference/data-types/lowcardinality)) — Hostname del servidor que ejecuta la consulta.
* `event_date` ([Date](/es/reference/data-types/date)) — Fecha del evento.
* `event_time` ([DateTime](/es/reference/data-types/datetime)) — Marca temporal en la que se escribió esta entrada de log.
* `database` ([LowCardinality(String)](/es/reference/data-types/lowcardinality)) — Nombre de la base de datos de la tabla de destino.
* `table` ([LowCardinality(String)](/es/reference/data-types/lowcardinality)) — Nombre de la tabla de destino.
* `query_id` ([String](/es/reference/data-types/string)) — ID de la consulta para vincularla de nuevo con query\_log.
* `predicate_expression` ([String](/es/reference/data-types/string)) — Expresión de filtro completa procesada en este paso de prewhere/filter (volcado de ActionsDAG).
* `input_rows` ([UInt64](/es/reference/data-types/int-uint)) — Filas que entran en este paso de prewhere/filter.
* `passed_rows` ([UInt64](/es/reference/data-types/int-uint)) — Filas que pasan este paso de prewhere/filter.
* `filter_selectivity` ([Float64](/es/reference/data-types/float)) — Selectividad de este paso: passed\_rows / input\_rows.
* `total_input_rows` ([UInt64](/es/reference/data-types/int-uint)) — Filas que entran en el primer paso de prewhere (total de filas leídas de los gránulos).
* `total_passed_rows` ([UInt64](/es/reference/data-types/int-uint)) — Filas que pasan todos los pasos de prewhere (filas entregadas a la consulta).
* `total_selectivity` ([Float64](/es/reference/data-types/float)) — Selectividad del predicado completo: total\_passed\_rows / total\_input\_rows.
* `index_names` ([Array(LowCardinality(String))](/es/reference/data-types/array)) — Nombres de los índices aplicados, por ejemplo \['PrimaryKey', 'idx\_bf\_status'] (solo para filas de índice).
* `index_types` ([Array(LowCardinality(String))](/es/reference/data-types/array)) — Tipos de índices aplicados: PrimaryKey, Skip, MinMax, Partition (solo para filas de índice).
* `total_granules` ([Array(UInt64)](/es/reference/data-types/array)) — Gránulos que entran en cada etapa del índice (solo para filas de índice).
* `granules_after` ([Array(UInt64)](/es/reference/data-types/array)) — Gránulos restantes después de cada etapa del índice (solo para filas de índice).
* `index_selectivities` ([Array(Float64)](/es/reference/data-types/array)) — Selectividad por índice: granules\_after / total\_granules (solo para filas de índice).

<div id="example">
  ## Ejemplo
</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">
  ## Véase también
</div>

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