Descripción
Contiene los identificadores de las consultas ejecutadas en la sesión actual, en orden de ejecución. Úselo para encontrar «las consultas que acabo de ejecutar» en system.query_log sin asignar query_id del lado del cliente ni etiquetar las consultas con log_comment.
El contenido tiene alcance de sesión: cada sesión ve únicamente su propio historial y las consultas de otras sesiones nunca aparecen.
El identificador de una consulta se registra cuando la consulta comienza, por lo que:
- La consulta en curso ya es visible cuando esta hace un SELECT sobre la tabla.
- Las consultas fallidas también se registran: obtener el identificador de una consulta que acaba de fallar es uno de los casos de uso principales.
Las consultas internas (volcados de los registros del sistema y similares) no se registran. Las subconsultas que las consultas distribuidas ejecutan en segmentos remotos tampoco se registran: solo aparece la consulta iniciadora, en la sesión del iniciador.
Alcance de la sesión según la interfaz
- Conexiones nativas/TCP (
clickhouse-client, drivers) y clickhouse-local: la sesión es la conexión, por lo que el historial se acumula a lo largo de todas las consultas de esa conexión, incluidas las invocaciones del client con múltiples consultas.
- HTTP con el parámetro
session_id: el historial persiste entre las solicitudes que envían el mismo session_id, hasta que la sesión expira.
- HTTP sin
session_id: cada solicitud constituye su propia sesión, por lo que la tabla solo muestra la consulta actual.
Tamaño del historial
El historial es un búfer circular limitado por el SETTING de sesión session_query_ids_history_size (valor predeterminado 1000); cuando el historial supera ese tamaño, se descartan primero las entradas más antiguas. Si se establece en 0, se deshabilita el registro; las entradas registradas anteriormente permanecen en la tabla hasta que se trunquen o se descarten.
El SETTING se lee al inicio de la consulta, antes de que esta se analice, por lo que una cláusula SETTINGS de la propia consulta no influye en si dicha consulta se registra; utilice en su lugar SET, un parámetro de URL HTTP o un perfil de configuración.
TRUNCATE
TRUNCATE TABLE system.session_query_ids borra el historial de la sesión actual. El contador de secuencia no se reinicia, por lo que los valores de sequence_number nunca se reutilizan dentro de una misma sesión.
Columnas
sequence_number (UInt64) — Posición de la consulta dentro de la sesión; es monótonamente creciente.
query_id (String) — El identificador de la consulta; se puede combinar mediante join con system.query_log.
Ejemplo
Ejecute algunas consultas y luego obtenga sus detalles de system.query_log:
La consulta actual se registra al inicio, por lo que aparece como la última entrada. Los timestamps, el status y todos los demás detalles se obtienen haciendo un join con system.query_log:
Véase también
- system.query_log - Detalles de las consultas ejecutadas.
- SETTING
session_query_ids_history_size.
Última modificación el 26 de septiembre de 2026