クエリインサイトは、スロークエリログとテーブル統計情報を提供する `hg_table_info` システムテーブルを統合した機能です。クエリのリソース消費量、関連テーブルのメタデータ、実行計画などの実行情報を提供します。また、クエリが DDL 衝突やテーブルロックを引き起こしているかを迅速に特定できるため、トラブルシューティングおよび問題解決を支援します。
前提条件
インスタンスへのログインが完了している必要があります。詳細については、「インスタンスへのログイン」をご参照ください。
クエリインサイトへのアクセス
HoloWeb の Query Insight に、Diagnostics and Optimization ページから直接アクセスできます。あるいは、HoloWeb の SQL Editor または Historical Slow Queries ページから Query Insight に移動することもできます。
-
Hologres 管理コンソール にログインします。
-
上部メニューバー左側のナビゲーションウィンドウで、対象のリージョンを選択します。
-
Go to HoloWeb をクリックして、HoloWeb 開発ページに移動します。
-
クエリインサイトページにアクセスします。
クエリインサイトへの直接アクセス
上部メニューバーで Diagnostics and Optimization を選択し、左側のナビゲーションウィンドウで Metadata Warehouse Analysis > Query Insight をクリックして、クエリインサイトページに移動します。

クエリインサイトへのナビゲーション
HoloWeb では、Query Insight に、SQL Editor または Historical Slow Queries ページからアクセスできます。手順は以下のとおりです:
-
SQL エディター:HoloWeb の SQL エディターで、実行時間が 1 秒を超えるクエリ ID を含む SQL 文をクリックすると、クエリインサイトに移動できます。
-
履歴スロークエリ:クエリ一覧で、対象の SQL クエリの Actions 列
アイコンをクリックして、クエリインサイトに移動します。
クエリインサイトページでは、Query Metadata および Table Metadata を表示でき、Plan Visualization および Table Lock Analysis を実行できます。
-
クエリメタデータ
クエリメタデータは Hologres のスロークエリログから取得されます。デフォルトでは、実行時間が 100 ms を超える DML 文およびすべての DDL 文のみが収集されます。ただし、このデータを照会する際には、実行時間が 1 秒を超える DDL 文のみが結果に表示されます。スロークエリログを照会するには、特定の権限が必要です。詳細については、「スロークエリログの表示と分析」をご参照ください。まず、Query Metadata タブを選択し、Instance Name および Query ID を指定して、Search をクリックすると、クエリメタデータが表示されます。
-
基本情報
クエリのインスタンス ID、DB、Milvus バージョンを表示します。
-
クエリ情報
スロークエリログから収集されたクエリの基本情報を表示します(例:ユーザー、実行ステータス、使用された実行エンジン)。
-
リソース消費量
スロークエリログから収集されたクエリ実行時のリソース消費量を表示します(例:スキャン関数、CPU 消費量)。
-
その他の情報
スロークエリログから収集されたクエリの拡張情報を表示します(例:クライアント IP アドレス)。
-
SQL
現在の SQL クエリの内容を表示します。必要に応じて、より直感的な表示のためにクエリをフォーマットしたり、コピーしたりできます。
-
クエリの詳細
クエリがパラメーター付きで実行された場合、このセクションには具体的なパラメーター値が表示されます。必要に応じて、パラメーターを SQL 文にマージできます。
-
実行計画
スロークエリログの Plan フィールドから取得したクエリの実行計画を表示します。なお、実行計画は実行時間が 10 秒を超えるクエリのみ収集されます。実行計画のグラフィカルな可視化機能を使用することで、さらにクエリの最適化が可能になります。実行計画の詳細については、「EXPLAIN および EXPLAIN ANALYZE」をご参照ください。
-
統計情報
スロークエリログの Statistics フィールドから取得したクエリの実行情報を表示します。各オペレーターごとの詳細な消費情報を示します(例:スキャン行数、オペレーター実行時間)。これらの統計情報を用いてオペレーターの消費状況を分析し、クエリのさらなる最適化を行えます。
-
読み取り/書き込みテーブル情報
現在のクエリによって読み取られたり書き込まれたりするテーブルを表示します。以下のリンクをクリックできます:
-
テーブルメタデータ:現在のテーブルのメタデータを表示する「テーブルメタデータ」ページに移動します。テーブルメタデータは `hg_table_info` テーブルから収集され、データは翌日(T+1)に更新されます。したがって、本日作成されたテーブルのメタデータは、翌日以降に照会可能です。
-
テーブルロック分析:現在のクエリがロックを保持しているかを確認できる「テーブルロック分析」ページに移動します。この分析では、DML 関連のロックのみを検出します。たとえば、固定プランを持つ SQL クエリの実行が遅延している場合、テーブルロック分析を用いて、Hologres 実行エンジン(HQE)による同時 DML 操作が存在しないかを確認できます。これにより、クエリの実行時間が増加している原因を特定できます。
-
-
DDL 衝突分析
現在のクエリの実行前後 1 分以内に、関与するテーブルに対して DDL 操作が実行されたかどうかを表示します。これにより、「Query is canceled」というエラーメッセージとともにクエリが失敗した原因として DDL 衝突が発生していたかを特定できます。
-
エラーメッセージ
クエリが失敗した場合、エラーの詳細が表示されます。また、Query Insight の HoloWeb 上で提供されるインテリジェント SQL 診断機能により、新しい障害原因および解決策が自動的に Error Message セクションに追加され、SQL エラーの解決を容易にします。一般的な SQL 文の失敗事例および解決策については、「Hologres SQL 文に関するよくある質問」をご参照ください。
テーブルメタデータ
テーブルメタデータは、テーブル統計情報を含む Hologres システムテーブル `hg_table_info` から取得されます。システムは毎朝 1 回、このデータを収集・報告します。データは T+1 で更新されるため、当日分のテーブルメタデータは翌日に照会可能です。
クエリメタデータ内のテーブル情報をクリックすることで、対応するテーブルメタデータを表示する「テーブルメタデータ」ページに移動できます。また、インスタンス名、データベース、スキーマ、メタデータ収集時間などのテーブル情報を手動で入力して、テーブルメタデータを表示することもできます。
-
基本情報
テーブル名を表示し、テーブルがパーティション化されているかを示します。また、パーティション関連の情報を提供します。
-
テーブルメタデータ情報
テーブル作成時刻、メタデータ収集時刻、ストレージ容量を表示します。
-
テーブルプロパティ情報
現在のテーブルに設定されたインデックス(例:プライマリキー(PK)、分散キー)を表示します。
-
テーブルスキーマ情報
フィールド、フィールド型、NULL 許容性、デフォルト値を含むテーブルスキーマを表示します。
実行計画の可視化
実行計画の可視化機能は、スロークエリログの `plan` フィールドを表示します。なお、実行計画の情報は実行時間が 10 秒を超えるクエリのみ収集されます。実行計画の詳細については、「EXPLAIN および EXPLAIN ANALYZE」をご参照ください。
テーブルロック分析
テーブルロック分析は、現在の SQL 文が Hologres 実行エンジン(HQE)において DML(INSERT、UPDATE、DELETE)操作を生成しているかをチェックします。これにより、ロックによって引き起こされる SDK SQL 文の実行遅延問題の診断を支援します。テーブルに対して SDK または HQE のクエリと HQE の DML クエリが同時に実行されている場合、ロックが発生します。両方のタイプの操作を同時に実行しないようご注意ください。
クエリインサイトを用いた一般的な課題のトラブルシューティング
-
エラー:relation with OID xxx does not exist
トラブルシューティング方法:このエラーは、クエリに関与するテーブルに対して TRUNCATE または DROP 操作が実行され、テーブルの OID が変更されたために発生することが多いです。クエリインサイトを用いてエラーを報告したクエリ ID を確認し、同時に DDL ロックが存在していたかを確認できます。

-
エラー:query is canceled
トラブルシューティング:このエラーは、クエリ実行中に TRUNCATE や DROP などの DDL 操作が関与するテーブルに対して実行されたために発生します。失敗したクエリのクエリ ID を Query Insight に入力してください。Query Metadata タブの DDL Conflict Analysis エリアで、テーブルに対する DDL 操作を確認できます。

-
SDK SQL 文の高レイテンシ
SDK SQL 文で高レイテンシが発生した場合は、クエリインサイトを用いてロック競合を確認します。たとえば、実行時間が 18 秒の文がある場合、Information of Table for Data Read and Write エリアの [ロック分析] をクリックします。
同時に HQE による DML 文が実行されています。HQE を用いて実行された DML 文はテーブルロックを獲得します。その結果、クエリ内の SDK SQL 文はロックの解放を待機し、実行時間が延長されます。HQE による DML 文が検出されない場合は、テーブルロックが獲得されていないことを意味します。この場合、「書き込みおよび更新パフォーマンスの最適化」を参照して、原因をさらに調査してください。