Skip to main content

system.query_log テーブルの使用

次の便利なクエリを使うと、実行したクエリのうち、最も多くのメモリを使用したものを確認できます。 このクエリについて、いくつか補足があります。
  • 結果は過去 1 日分 (now() - toIntervalDay(1))) をもとに計算されますが、時間間隔は簡単に変更できます
  • default という名前のクラスターがあることを前提としています。これは ClickHouse Cloud でのクラスター名です。default をご使用のクラスター名に変更してください
  • クラスターがない場合は、この記事の末尾に記載されているクエリを参照してください
レスポンスは次のようになります。
system.query_log テーブルがない場合、クエリログが有効になっていない可能性があります。有効化の詳細については、query_log setting を参照してください。
query_log には、送信したクエリ以外も含まれます1 つのクエリを送信すると、複数の行として記録されることがあります。たとえば、初期クエリ (is_initial_query = 1) に加えて、分散実行のための二次クエリやビューの評価に使用される内部クエリなど、派生クエリや内部処理のステップ (is_initial_query = 0) も含まれます。これらの内部行には独自の query_id 値があり、ClickHouse によって割り当てられ、ときには queryView... のようなラベルが含まれることもあるため、すべての query_id がクライアントから報告されたものと一致するとは限りません。実際に実行したクエリに使用量を対応付けるには、is_initial_query = 1 で絞り込むか、query_id = initial_query_id で照合してください。詳しくは、最も高コストなクエリを特定する方法 および query_log reference を参照してください。
クラスターがない場合は、単一の system.query_log テーブルを直接クエリできます:
最終更新日 2026年8月14日