Skip to main content

Utilisation de la table system.query_log

La requête suivante, très utile, montre lesquelles de vos requêtes exécutées ont consommé le plus de mémoire. Quelques remarques à propos de cette requête :
  • les résultats sont calculés sur les dernières 24 heures (now() - toIntervalDay(1))), mais vous pouvez facilement modifier l’intervalle de temps
  • elle suppose que vous disposez d’un cluster nommé default, qui est le nom de votre cluster dans ClickHouse Cloud. Remplacez default par le nom de votre cluster
  • si vous n’avez pas de cluster, consultez la requête indiquée à la fin de cet article
La réponse ressemble à ceci :
Si vous n’avez pas de table system.query_log, c’est probablement que la journalisation des requêtes n’est pas activée. Consultez les détails du paramètre query_log pour savoir comment l’activer.
query_log contient plus que les requêtes que vous avez soumisesUne même requête soumise peut apparaître sur plusieurs lignes : la requête initiale (is_initial_query = 1) ainsi que des étapes dérivées ou internes (is_initial_query = 0), comme des requêtes secondaires pour une exécution distribuée ou des requêtes internes utilisées pour évaluer des vues. Ces lignes internes ont leurs propres valeurs query_id — attribuées par ClickHouse et incluant parfois un libellé tel que queryView... — ne partez donc pas du principe que chaque query_id correspond à ce que votre client a signalé. Pour attribuer l’utilisation à la requête telle que vous l’avez exécutée, filtrez sur is_initial_query = 1 ou faites correspondre query_id = initial_query_id. Consultez Comment identifier les requêtes les plus coûteuses et la référence query_log pour plus de détails.
Si vous n’avez pas de cluster, vous pouvez interroger directement votre unique table system.query_log :
Dernière modification le 14 août 2026