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

> Table système contenant des informations sur les requêtes exécutées, par exemple : l'heure de début, la durée de traitement, les messages d'erreur.

# system.query_log

<Info>
  **Interroger dans ClickHouse Cloud**

  Les données de cette table système sont stockées localement sur chaque nœud de ClickHouse Cloud. Pour obtenir une vue complète de l’ensemble des données, il faut donc utiliser la fonction `clusterAllReplicas`. Consultez [cette page](/fr/reference/system-tables/overview#system-tables-in-clickhouse-cloud) pour plus de détails.
</Info>

<div id="description">
  ## Description
</div>

Stocke les métadonnées et les statistiques relatives aux requêtes exécutées, telles que l'heure de début, la durée, les messages d'erreur, l'utilisation des ressources et d'autres détails d'exécution. Elle ne stocke pas les résultats des requêtes.

Vous pouvez modifier les paramètres de journalisation des requêtes dans la section [query\_log](/fr/reference/settings/server-settings/settings#query_log) de la configuration du serveur.

Vous pouvez désactiver la journalisation des requêtes en définissant [log\_queries = 0](/fr/reference/settings/session-settings#log_queries). Nous ne recommandons pas de désactiver la journalisation, car les informations de cette table sont importantes pour résoudre les problèmes.

La période de vidage des données est définie par le paramètre `flush_interval_milliseconds` dans la section des paramètres du serveur [query\_log](/fr/reference/settings/server-settings/settings#query_log). Pour forcer le vidage, utilisez la requête [SYSTEM FLUSH LOGS](/fr/reference/statements/system#flush-logs).

ClickHouse ne supprime pas automatiquement les données de la table. Voir [Introduction](/fr/reference/system-tables/overview#system-tables-introduction) pour plus de détails.

La table `system.query_log` enregistre deux types de requêtes :

1. Les requêtes initiales exécutées directement par le client.
2. Les requêtes enfants initiées par d'autres requêtes (pour l'exécution distribuée des requêtes). Pour ces types de requêtes, les informations sur les requêtes parentes sont affichées dans les colonnes `initial_*`.

Chaque requête crée une ou deux lignes dans la table `query_log`, selon le statut (voir la colonne `type`) de la requête :

1. Si l'exécution de la requête a réussi, deux lignes avec les types `QueryStart` et `QueryFinish` sont créées.
2. Si une erreur s'est produite pendant le traitement de la requête, deux événements avec les types `QueryStart` et `ExceptionWhileProcessing` sont créés.
3. Si une erreur s'est produite avant le lancement de la requête, un seul événement avec le type `ExceptionBeforeStart` est créé.

Vous pouvez utiliser le paramètre [log\_queries\_probability](/fr/reference/settings/session-settings#log_queries_probability) pour réduire le nombre de requêtes enregistrées dans la table `query_log`.

Vous pouvez utiliser le paramètre [log\_formatted\_queries](/fr/reference/settings/session-settings#log_formatted_queries) pour consigner les requêtes mises en forme dans la colonne `formatted_query`.

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

* `hostname` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — Nom d’hôte du serveur qui exécute la requête.
* `type` ([Enum8('QueryStart' = 1, 'QueryFinish' = 2, 'ExceptionBeforeStart' = 3, 'ExceptionWhileProcessing' = 4)](/fr/reference/data-types/enum)) — Type d’événement survenu lors de l’exécution de la requête. Valeurs : `QueryStart` — démarrage réussi de l’exécution de la requête, `QueryFinish` — fin réussie de l’exécution de la requête, `ExceptionBeforeStart` — exception avant le début de l’exécution de la requête, `ExceptionWhileProcessing` — exception pendant l’exécution de la requête.
* `event_date` ([Date](/fr/reference/data-types/date)) — Date de début de la requête.
* `event_time` ([DateTime](/fr/reference/data-types/datetime)) — Heure de début de la requête.
* `event_time_microseconds` ([DateTime64(6)](/fr/reference/data-types/datetime64)) — Heure de début de la requête avec une précision à la microseconde.
* `query_start_time` ([DateTime](/fr/reference/data-types/datetime)) — Heure de début de l’exécution de la requête.
* `query_start_time_microseconds` ([DateTime64(6)](/fr/reference/data-types/datetime64)) — Heure de début de l’exécution de la requête avec une précision à la microseconde.
* `query_duration_ms` ([UInt64](/fr/reference/data-types/int-uint)) — Durée d’exécution de la requête en millisecondes.
* `read_rows` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre total de lignes lues depuis toutes les tables et fonctions de table participant à la requête. Cela inclut les sous-requêtes classiques, les sous-requêtes pour IN et JOIN. Pour les requêtes distribuées, read\_rows inclut le nombre total de lignes lues sur toutes les répliques. Chaque réplique envoie sa valeur read\_rows, et le serveur initiateur de la requête additionne toutes les valeurs reçues et locales. Les volumes du cache n’affectent pas cette valeur.
* `read_bytes` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre total d’octets lus depuis toutes les tables et fonctions de table participant à la requête. Cela inclut les sous-requêtes classiques, les sous-requêtes pour IN et JOIN. Pour les requêtes distribuées, read\_bytes inclut le nombre total de lignes lues sur toutes les répliques. Chaque réplique envoie sa valeur read\_bytes, et le serveur initiateur de la requête additionne toutes les valeurs reçues et locales. Les volumes du cache n’affectent pas cette valeur.
* `written_rows` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre de lignes écrites par la requête, y compris les lignes écrites par les insertions en aval déclenchées par le pipeline, telles que les vues matérialisées attachées. Pour une insertion synchrone, ces lignes en aval sont enregistrées dans l’entrée `query_kind` = `Insert` ; pour une insertion asynchrone, elles sont enregistrées dans l’entrée `query_kind` = `AsyncInsertFlush`, tandis que l’entrée `Insert` côté client n’enregistre que les lignes acceptées du client. Pour les requêtes qui n’écrivent pas de lignes, la valeur est 0.
* `written_bytes` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre d’octets écrits par la requête (non compressés), y compris les octets écrits par les insertions en aval déclenchées par le pipeline, telles que les vues matérialisées attachées. Pour une insertion synchrone, ces octets en aval sont enregistrés dans l’entrée `query_kind` = `Insert` ; pour une insertion asynchrone, ils sont enregistrés dans l’entrée `query_kind` = `AsyncInsertFlush`, tandis que l’entrée `Insert` côté client n’enregistre que les octets acceptés du client. Pour les requêtes qui n’écrivent pas de données, la valeur est 0.
* `result_rows` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre de lignes dans le résultat d’une requête SELECT, ou nombre de lignes écrites par une insertion. Pour une insertion synchrone, cela inclut les lignes écrites par les insertions en aval déclenchées par le pipeline (telles que les vues matérialisées attachées) dans l’entrée `query_kind` = `Insert` ; pour une insertion asynchrone, ces lignes en aval sont enregistrées dans l’entrée `query_kind` = `AsyncInsertFlush`, tandis que l’entrée `Insert` côté client n’enregistre que les lignes acceptées du client.
* `result_bytes` ([UInt64](/fr/reference/data-types/int-uint)) — Volume de RAM, en octets, utilisé pour stocker le résultat d’une requête.
* `memory_usage` ([UInt64](/fr/reference/data-types/int-uint)) — Consommation de mémoire de la requête.
* `current_database` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — Nom de la base de données courante.
* `query` ([String](/fr/reference/data-types/string)) — Texte de la requête.
* `formatted_query` ([String](/fr/reference/data-types/string)) — Texte mis en forme de la requête.
* `normalized_query_hash` ([UInt64](/fr/reference/data-types/int-uint)) — Une valeur de hachage numérique, identique par exemple pour des requêtes qui ne diffèrent que par les valeurs des littéraux.
* `query_kind` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — Type de la requête.
* `databases` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms des bases de données présentes dans la requête.
* `tables` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms des tables présentes dans la requête.
* `columns` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms des colonnes présentes dans la requête.
* `partitions` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms des partitions présentes dans la requête.
* `projections` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms des projections utilisées lors de l’exécution de la requête.
* `views` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms des vues (matérialisées ou live) présentes dans la requête.
* `exception_code` ([Int32](/fr/reference/data-types/int-uint)) — Code de l’exception.
* `exception` ([String](/fr/reference/data-types/string)) — Message d’exception.
* `stack_trace` ([String](/fr/reference/data-types/string)) — Trace de pile. Chaîne vide si la requête s’est terminée avec succès.
* `is_initial_query` ([UInt8](/fr/reference/data-types/int-uint)) — Type de requête. Valeurs possibles : 1 — la requête a été initiée par le client, 0 — la requête a été initiée par une autre requête dans le cadre de l’exécution distribuée des requêtes.
* `connection_address` ([IPv6](/fr/reference/data-types/ipv6)) — Adresse IP du client à partir de laquelle la connexion a été établie. En cas de connexion via un proxy, il s’agira de l’adresse du proxy.
* `connection_port` ([UInt16](/fr/reference/data-types/int-uint)) — Port client à partir duquel la connexion a été établie. En cas de connexion via un proxy, il s’agira du port du proxy.
* `user` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — Nom de l’utilisateur qui a initié la requête en cours.
* `query_id` ([String](/fr/reference/data-types/string)) — ID de la requête.
* `address` ([IPv6](/fr/reference/data-types/ipv6)) — Adresse IP utilisée pour effectuer la requête. En cas de connexion via un proxy et si `auth_use_forwarded_address` est défini, il s’agira de l’adresse du client plutôt que de celle du proxy.
* `port` ([UInt16](/fr/reference/data-types/int-uint)) — Port client utilisé pour effectuer la requête. En cas de connexion via un proxy et si `auth_use_forwarded_address` est défini, il s’agira du port du client plutôt que de celui du proxy.
* `initial_user` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — Nom de l’utilisateur qui a exécuté la requête initiale (pour l’exécution distribuée des requêtes).
* `initial_query_id` ([String](/fr/reference/data-types/string)) — ID de la requête initiale (pour l’exécution distribuée des requêtes).
* `initial_address` ([IPv6](/fr/reference/data-types/ipv6)) — Adresse IP depuis laquelle la requête parente a été lancée.
* `initial_port` ([UInt16](/fr/reference/data-types/int-uint)) — Port client utilisé pour exécuter la requête parente.
* `initial_query_start_time` ([DateTime](/fr/reference/data-types/datetime)) — Heure de début de la requête initiale (pour l’exécution distribuée des requêtes).
* `initial_query_start_time_microseconds` ([DateTime64(6)](/fr/reference/data-types/datetime64)) — Heure de début de la requête initiale avec une précision à la microseconde (pour l’exécution distribuée des requêtes).
* `authenticated_user` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — Nom de l’utilisateur authentifié dans la session.
* `interface` ([UInt8](/fr/reference/data-types/int-uint)) — Interface à partir de laquelle la requête a été lancée. Valeurs possibles : 1 — TCP, 2 — HTTP.
* `is_secure` ([UInt8](/fr/reference/data-types/int-uint)) — Indique si une requête a été exécutée via une interface sécurisée.
* `os_user` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — Nom d’utilisateur du système d’exploitation qui exécute clickhouse-client.
* `client_hostname` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — Nom d’hôte de la machine cliente sur laquelle clickhouse-client ou un autre client TCP s’exécute.
* `client_name` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — Nom de clickhouse-client ou d’un autre client TCP.
* `client_agent` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — L’agent IA de développement qui a invoqué le client (par exemple, `claude-code` ou `cursor`), détecté à partir des variables d’environnement. Vide si aucun agent n’a été détecté.
* `client_revision` ([UInt32](/fr/reference/data-types/int-uint)) — Révision de clickhouse-client ou d’un autre client TCP.
* `client_version_major` ([UInt32](/fr/reference/data-types/int-uint)) — Version majeure de clickhouse-client ou d’un autre client TCP.
* `client_version_minor` ([UInt32](/fr/reference/data-types/int-uint)) — Version mineure de clickhouse-client ou d’un autre client TCP.
* `client_version_patch` ([UInt32](/fr/reference/data-types/int-uint)) — Composant correctif de la version de clickhouse-client ou d’un autre client TCP.
* `script_query_number` ([UInt32](/fr/reference/data-types/int-uint)) — Numéro de la requête dans un script contenant plusieurs requêtes pour clickhouse-client.
* `script_line_number` ([UInt32](/fr/reference/data-types/int-uint)) — Numéro de la ligne où commence la requête dans un script contenant plusieurs requêtes pour clickhouse-client.
* `http_method` ([UInt8](/fr/reference/data-types/int-uint)) — Méthode HTTP qui a lancé la requête. Valeurs possibles : 0 — La requête a été lancée depuis l’interface TCP, 1 — La méthode GET a été utilisée, 2 — La méthode POST a été utilisée.
* `http_user_agent` ([LowCardinality(String)](/fr/reference/data-types/lowcardinality)) — En-tête HTTP UserAgent transmis dans la requête HTTP.
* `http_referer` ([String](/fr/reference/data-types/string)) — En-tête HTTP Referer transmis dans la requête HTTP (contient une adresse absolue ou partielle de la page à l’origine de la requête).
* `forwarded_for` ([String](/fr/reference/data-types/string)) — En-tête HTTP X-Forwarded-For transmis dans la requête HTTP.
* `quota_key` ([String](/fr/reference/data-types/string)) — Clé de quota spécifiée dans le paramètre quotas (voir keyed).
* `distributed_depth` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre de fois qu’une requête a été transférée entre serveurs.
* `revision` ([UInt32](/fr/reference/data-types/int-uint)) — Révision de ClickHouse.
* `log_comment` ([String](/fr/reference/data-types/string)) — Commentaire du journal. Il peut être défini sur une chaîne arbitraire ne dépassant pas max\_query\_size. Chaîne vide s’il n’est pas défini.
* `thread_ids` ([Array(UInt64)](/fr/reference/data-types/array)) — Identifiants des threads qui participent à l’exécution de la requête. Ces threads peuvent ne pas s’être exécutés simultanément.
* `peak_threads_usage` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre maximal de threads simultanés exécutant la requête.
* `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/fr/reference/data-types/map)) — ProfileEvents qui mesurent différentes métriques. Leur description se trouve dans la table system.events.
* `Settings` ([Map(LowCardinality(String), LowCardinality(String))](/fr/reference/data-types/map)) — Paramètres modifiés lorsque le client a exécuté la requête. Pour activer la journalisation des modifications de paramètres, définissez le paramètre log\_query\_settings sur 1.
* `used_aggregate_functions` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des fonctions d’agrégation utilisées pendant l’exécution de la requête.
* `used_aggregate_function_combinators` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des combinateurs de fonctions d’agrégation utilisés lors de l’exécution de la requête.
* `used_database_engines` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des moteurs de base de données utilisés lors de l’exécution de la requête.
* `used_data_type_families` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des familles de types de données utilisées lors de l’exécution de la requête.
* `used_dictionaries` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des dictionnaires utilisés lors de l’exécution de la requête.
* `used_formats` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des formats utilisés lors de l’exécution de la requête.
* `used_functions` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des fonctions utilisées lors de l’exécution de la requête.
* `used_storages` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des stockages utilisés lors de l’exécution de la requête.
* `used_table_functions` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des fonctions de table utilisées lors de l’exécution de la requête.
* `used_executable_user_defined_functions` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des fonctions exécutables définies par l’utilisateur utilisées lors de l’exécution de la requête.
* `used_sql_user_defined_functions` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Noms canoniques des fonctions SQL définies par l’utilisateur utilisées lors de l’exécution de la requête.
* `used_row_policies` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Liste des noms des politiques de ligne utilisées lors de l’exécution de la requête.
* `used_privileges` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Privilèges dont la vérification a réussi lors de l’exécution de la requête.
* `missing_privileges` ([Array(LowCardinality(String))](/fr/reference/data-types/array)) — Privilèges manquants lors de l’exécution de la requête.
* `transaction_id` ([Tuple(UInt64, UInt64, UUID)](/fr/reference/data-types/tuple)) — Identifiant de la transaction dans le cadre de laquelle cette requête a été exécutée.
* `query_cache_usage` ([Enum8('Unknown' = 0, 'None' = 1, 'Write' = 2, 'Read' = 3)](/fr/reference/data-types/enum)) — Utilisation du cache de requêtes lors de l’exécution de la requête. Valeurs : 'Unknown' = statut inconnu, 'None' = le résultat de la requête n’a été ni écrit dans le cache de résultats de requêtes ni lu depuis celui-ci, 'Write' = le résultat de la requête a été écrit dans le cache de résultats de requêtes, 'Read' = le résultat de la requête a été lu depuis le cache de résultats de requêtes.
* `asynchronous_read_counters` ([Map(LowCardinality(String), UInt64)](/fr/reference/data-types/map)) — Métriques de lecture asynchrone.
* `is_internal` ([UInt8](/fr/reference/data-types/int-uint)) — Indique s’il s’agit d’une requête auxiliaire exécutée en interne.

**Alias :**

* `ProfileEvents.Names` — alias de `mapKeys(ProfileEvents)`.
* `ProfileEvents.Values` — alias de `mapValues(ProfileEvents)`.
* `Settings.Names` — alias de `mapKeys(Settings)`.
* `Settings.Values` — alias de `mapValues(Settings)`.

<div id="examples">
  ## Exemples
</div>

**Exemple simple**

```sql theme={null}
SELECT * FROM system.query_log WHERE type = 'QueryFinish' ORDER BY query_start_time DESC LIMIT 1 FORMAT Vertical;
```

```text theme={null}
Row 1:
──────
hostname:                              clickhouse.eu-central1.internal
type:                                  QueryFinish
event_date:                            2021-11-03
event_time:                            2021-11-03 16:13:54
event_time_microseconds:               2021-11-03 16:13:54.953024
query_start_time:                      2021-11-03 16:13:54
query_start_time_microseconds:         2021-11-03 16:13:54.952325
query_duration_ms:                     0
read_rows:                             69
read_bytes:                            6187
written_rows:                          0
written_bytes:                         0
result_rows:                           69
result_bytes:                          48256
memory_usage:                          0
current_database:                      default
query:                                 DESCRIBE TABLE system.query_log
formatted_query:
normalized_query_hash:                 8274064835331539124
query_kind:
databases:                             []
tables:                                []
columns:                               []
projections:                           []
views:                                 []
exception_code:                        0
exception:
stack_trace:
is_initial_query:                      1
user:                                  default
query_id:                              7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6
address:                               ::ffff:127.0.0.1
port:                                  40452
initial_user:                          default
initial_query_id:                      7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6
initial_address:                       ::ffff:127.0.0.1
initial_port:                          40452
initial_query_start_time:              2021-11-03 16:13:54
initial_query_start_time_microseconds: 2021-11-03 16:13:54.952325
interface:                             1
os_user:                               sevirov
client_hostname:                       clickhouse.eu-central1.internal
client_name:                           ClickHouse
client_revision:                       54449
client_version_major:                  21
client_version_minor:                  10
client_version_patch:                  1
http_method:                           0
http_user_agent:
http_referer:
forwarded_for:
quota_key:
revision:                              54456
log_comment:
thread_ids:                            [30776,31174]
ProfileEvents:                         {'Query':1,'NetworkSendElapsedMicroseconds':59,'NetworkSendBytes':2643,'SelectedRows':69,'SelectedBytes':6187,'ContextLock':9,'RWLockAcquiredReadLocks':1,'RealTimeMicroseconds':817,'UserTimeMicroseconds':427,'SystemTimeMicroseconds':212,'OSCPUVirtualTimeMicroseconds':639,'OSReadChars':894,'OSWriteChars':319}
Settings:                              {'load_balancing':'random','max_memory_usage':'10000000000'}
used_aggregate_functions:              []
used_aggregate_function_combinators:   []
used_database_engines:                 []
used_data_type_families:               []
used_dictionaries:                     []
used_formats:                          []
used_functions:                        []
used_storages:                         []
used_table_functions:                  []
used_executable_user_defined_functions:[]
used_sql_user_defined_functions:       []
used_privileges:                       []
missing_privileges:                    []
query_cache_usage:                     None
```

**Exemple Cloud**

Dans ClickHouse Cloud, `system.query_log` est local à chaque nœud ; pour voir tous les enregistrements, vous devez interroger via [`clusterAllReplicas`](/fr/reference/functions/table-functions/cluster).

Par exemple, pour agréger les lignes de `query_log` de chaque réplique du cluster « default », vous pouvez écrire :

```sql theme={null}
SELECT * 
FROM clusterAllReplicas('default', system.query_log)
WHERE event_time >= now() - toIntervalHour(1)
LIMIT 10
SETTINGS skip_unavailable_shards = 1;
```

<div id="see-also">
  ## Voir aussi
</div>

* [system.query\_thread\_log](/fr/reference/system-tables/query_thread_log) — Cette table contient des informations sur chaque thread d’exécution d’une requête.
