Query Tool

クエリツールは、任意のSQLコマンドを実行し、結果セットを確認できる強力で機能が豊富な環境です。クエリツールには、 ツール メニューの クエリツール メニューオプション、またはオブジェクトエクスプローラーコントロールの選択ノードのコンテキストメニューからアクセスできます。クエリツールを使用すると、次のことができます。

  • アドホックSQLクエリを発行します。

  • 任意のSQLコマンドを実行する。

  • updatable の場合、SELECTクエリの結果セットを編集します。

  • ユーザーが構成した現在の接続とトランザクションのステータスを表示します。

  • 出力パネルに表示されたデータをCSVファイルに保存します。

  • テキスト、グラフィカル形式、またはテーブル形式(<ahref="https://explain.depesz.com">https://explain.depesz.com</a>に類似)でSQLステートメントの実行計画を確認します。

  • SQLステートメントに関する分析情報を表示します。

クエリツールウィンドウ

個々のタブでクエリツールの複数のコピーを同時に開くことができます。クエリツールのコピーを閉じるには、タブバーの右上隅にある X をクリックします。

クエリツールには2つのパネルがあります。

  • 上部パネルには SQLEditor が表示されます。パネルを使用して、クエリを入力、編集または実行できます。また、セッションで実行されたクエリを表示するために使用できる[ 履歴 ]タブと、編集中にテキストスニペットを保持するために使用できる スクラッチパッド も示しています。スクラッチパッドが閉じている場合、SQLエディターおよび他のパネルで右クリックし、新しいパネルを追加することにより、再度開く(またはさらに開く)ことができます。

  • 下部のパネルには、 DataOutput パネルが表示されます。タブ付きパネルには、クエリによって返された結果セット、クエリの実行計画に関する情報、クエリの実行に関連するサーバーメッセージ、およびサーバーから受信した非同期通知が表示されます。

ツールバー

ツールバーについては、次のサブセクションで説明します。

SQLエディターパネル

SQLエディター パネルは、手動でクエリを提供したり、別のソースからクエリをコピーしたり、ファイルからクエリを読み込んだりできるワークスペースです。SQLエディターは、構文の色付けとオートコンプリートを備えています。

クエリツールエディター

オートコンプリートを使用するには、クエリの入力を開始します。クエリエディターにクエリ内の次の可能性のあるオブジェクト名またはコマンドを提案する場合は、Control+Spaceキーの組み合わせを押します。たとえば、/" SELECT/ FROM*/"(引用符はありませんが、末尾にはスペースを入れます)と入力し、Control+Spaceキーの組み合わせを押して、オートコンプリートオプションのポップアップメニューから選択します。

クエリツールのオートコンプリート機能

クエリを入力した後、ツールバーから 実行/更新 アイコンを選択します。SQLエディターパネルの完全な内容は、実行のためにデータベースサーバーに送信されます。SQLエディターに表示されているコードのセクションのみを実行するには、サーバーで実行するテキストを強調表示し、 実行/更新 アイコンをクリックします。

クエリツール実行クエリセクション

コマンドの実行時にサーバーから返されるメッセージは、[ メッセージ ]タブに表示されます。コマンドが成功すると、 メッセージ タブに実行の詳細が表示されます。

クエリツールのメッセージパネル

[ 編集 ]メニューのオプションは、コードのフォーマットとコメントに役立つ機能を提供します。

  • 自動インデント機能は、Returnキーを押すと、テキストを前の行と同じ深さに自動的にインデントします。

  • 2行以上を選択してTabキーを押すと、インデントテキストをブロックできます。

  • コード内でSQLスタイルを実装または削除するか、Cスタイルのコメント表記を切り替えます。

ツリービューから特定のオブジェクトを drag and drop することもできます。これにより、長いオブジェクト名を入力する時間を節約できます。オブジェクト名を含むテキストは、スキーマで完全修飾されます。必要に応じて、ダブルクォーテーションが追加されます。関数とプロシージャの場合、関数名とパラメーター名がクエリツールに貼り付けられます。

クエリ履歴パネル

[ クエリ履歴 ]タブを使用して、現在のセッションのアクティビティを確認します。

クエリツール履歴パネル

[QueryHistory]タブには、最近のコマンドに関する情報が表示されます。

  • クエリが呼び出された日時。

  • クエリのテキスト。

  • クエリによって返された行数。

  • サーバーがクエリを処理して結果セットを返すまでにかかった時間。

  • サーバーから返されたメッセージ([ メッセージ ]タブには記載されていません)。

  • クエリのソース(ツールバーに対応するアイコンで示されます)。

pgAdminによって内部的に生成されたクエリを表示または非表示にできます(「データの表示/編集」または「データの保存」操作中)。

単一のクエリを選択して 削除 ボタンをクリックすると、クエリを削除できます。 QueryHistory タブからすべての履歴を削除する場合は、 RemoveAll ボタンをクリックします。

コピー ボタンを使用すると、特定のクエリをクリップボードにコピーでき、 クエリエディターにコピー ボタンを使用すると、特定のクエリを[クエリエディター]タブにコピーできます。この操作中に、クエリエディターの既存のコンテンツはすべて消去されます。

クエリ履歴は、クエリツールモードで実行されている場合、ユーザーごとに各データベースのセッション間で維持されます。View/EditDataモードでは、履歴は保持されません。デフォルトでは、最新の20個のクエリがデータベースごとに保存されます。これは、MAX_QUERY_HIST_STORED`値をオーバーライドすることにより、 ``config_local.py` または config_system.py ( config_local.py ドキュメントを参照)で調整できます。詳細については、 config_local.py セクションを参照してください。

データ出力パネル

DataOutput パネルには、最後に実行されたクエリによって生成されたデータと統計が表示されます。

クエリツール出力パネル

[ データ出力 ]タブには、クエリの結果セットが表形式で表示されます。次のことができます。

  • 表示された結果セットから選択してコピーします。

  • Execute/Refresh オプションを使用して、クエリ実行情報を取得し、クエリ実行オプションを設定します。

  • 結果をファイルに保存 アイコンを使用して、 データ出力 タブの内容をコンマ区切りファイルとして保存します。

  • 更新可能な場合は、SELECTクエリの結果セット内のデータを編集します。

次の場合、結果セットは更新可能です。

  • すべての列は、単一のテーブルから直接選択されるか、まったくテーブルの列ではありません(2列の連結など)。テーブルから直接選択した列のみが編集可能で、他の列は読み取り専用です。

  • テーブルのすべての主キー列またはOIDが結果セットで選択されます。

名前変更または複数回選択された列も読み取り専用です。

編集可能な列と読み取り専用の列は、列ヘッダーの鉛筆アイコンとロックアイコンを(それぞれ)使用して識別されます。

クエリツールの編集可能な読み取り専用の列

更新可能なクエリ結果セットが機能するには、psycopg2ドライバーのバージョンが2.8以上である必要があります。

更新可能な結果セットは、データの表示/編集モードの Data Grid と同じであり、同じ方法で変更できます。

自動コミットがオフの場合、データ変更は進行中のトランザクションの一部として行われます。進行中のトランザクションがない場合、新しいトランザクションが開始されます。トランザクションがコミットされない限り、データの変更はデータベースにコミットされません。

保存中にエラーが発生した場合(たとえば、NOTNULL制約付きの列にNULLを保存しようとした場合)、データの変更は自動的に作成されたSAVEPOINTにロールバックされ、進行中のトランザクションで以前に実行されたクエリがロールバックされないようにします。

DataOutput パネルに表示される以前のクエリまたはコマンドのすべての行セットは、別のクエリを呼び出すと破棄されます。別のクエリツールタブを開き、以前の結果を利用できるようにします。

説明パネル

クエリの Explain または ExplainAnalyze プランを生成するには、ツールバーの Explain または ExplainAnalyze ボタンをクリックします。

Explain と ExplainAnalyze に関連するその他のオプションは、ツールバーの ExplainAnalyze ボタンの右側にあるドロップダウンから選択できます。

クエリツールツールバーの説明ボタン

pgAdminは Explain[Analyze] プランをJSON形式で生成することに注意してください。

説明 計画の生成が成功すると、[説明]パネルの下に3つのタブ/パネルが作成されます。

  • グラフィカル

EXPLAINVERBOSE はグラフィカルに表示できないことに注意してください。 グラフィカル タブのノードアイコンをクリックして、そのアイテムに関する情報を確認します。右側にポップアップウィンドウが表示され、選択したオブジェクトに関する情報が表示されます。JIT統計、トリガー、および概要の詳細については、右上隅のボタンをクリックしてください。必要に応じて、同様のポップアップウィンドウが表示されます。

説明 キャンバスの左上隅にあるダウンロードボタンを使用して、計画をSVGファイルとしてダウンロードします。

Note: SVGとしてのダウンロードはInternetExplorerではサポートされていません。

クエリツールグラフィカルな説明計画

分析の説明 に伴うクエリプランは、 データ出力 タブで利用できることに注意してください。

  • 表

テーブル タブは、プランの詳細を表形式で表示し、 explain.depesz.com と同様の表形式を生成します。テーブルの各行は、 説明計画ノード のデータを表します。これには、ノード情報、排他的タイミング、包括的タイミング、実際の行と計画の行の違い、実際の行、計画された行、ループが含まれる場合があります。

排他的、包括的、および行X列の背景色は、実際と計画の違いに基づいて異なる場合があります。

合計クエリ時間の排他的/包含タイミングの割合が:>90-赤色>50-オレンジ(赤と黄色の間)色>10-黄色

プランナーが行数(実際と計画)を10回誤って推定した場合-黄色100回-オレンジ(赤と黄色の間)色1000回-赤色

クエリツールの説明計画表
  • 統計

統計 タブには2つのテーブルが表示されます。1.計画ノードタイプごとの統計2.テーブルごとの統計

クエリツールEXPLAINPLAN統計

メッセージパネル

Messages タブを使用して、最後に実行されたクエリに関する情報を表示します。

クエリツールの出力メッセージ

サーバーがエラーを返した場合、エラーメッセージは メッセージ タブに表示され、エラーの原因となった構文はSQLエディターに下線が引かれます。クエリが成功すると、[ メッセージ ]タブに、クエリが完了するまでにかかった時間と、取得された行数が表示されます。

クエリツール出力情報

通知パネル

Notifications タブを使用して、PostgreSQLの Listen/Notify 機能を使用して通知を表示します。詳細については、 PostgreSQL documentation を参照してください。

例:

  1. 最初の クエリツール セッションで LISTEN/"foo/" を実行します

クエリツール通知リッスン

2.別の クエリツール セッションで、 Notify コマンドまたは pg_notify 関数を実行して、ペイロードとともにイベントの通知を送信します。

クエリツールの通知notify

3.最初の クエリツール セッションの 通知 タブに、特定のチャネルの記録時間、イベント、プロセスID、およびペイロードが表示されます。

クエリツールの通知パネル

グラフビジュアライザーパネル

ツールバーのGraphVisualiserボタンをクリックして、クエリ結果の グラフ を生成します。グラフビジュアライザーは、折れ線グラフ、積み上げ折れ線グラフ、棒グラフ、積み上げ棒グラフ、および円グラフをサポートしています。

クエリツールグラフビジュアライザーパネル
  • グラフタイプ

生成するグラフの種類を選択します。

クエリツールグラフビジュアライザーグラフタイプ
  • X軸

X軸に値を表示する列を XAxis ドロップダウンから選択します。 <RowNumber> オプションを選択して、行数をX軸のラベルとして使用します。

クエリツールグラフビジュアライザーxaxis
  • Y軸

YAxis ドロップダウンからY軸に値を表示する列を選択します。ユーザーは複数の列を選択できます。ドロップダウンメニューから <SelectAll> オプションを選択して、すべての列を選択します。

クエリツールグラフビジュアライザーyaxis
  • ダウンロードしてズームボタン

ズームは、チャート上の領域をクリックしてマウスで選択することで実行されます。 元にズーム ボタンを押すと、元のズームレベルに戻ります。

ボタンバーの Download ボタンをクリックして、チャートをダウンロードします。

クエリツールグラフビジュアライザーツールバー

折れ線グラフ

折れ線グラフ は、GraphTypeドロップダウンから'LineChart'を選択し、X軸とY軸を選択して、'Generate'ボタンをクリックすることで生成できます。以下は、従業員の名前と給与のグラフの例です。

クエリツールグラフビジュアライザー折れ線グラフ

Preferences Dialog で Usedifferentdatapointstyles? オプションをtrueに設定して、各グラフ線に異なるスタイルでデータポイントを表示します。

積み上げ折れ線グラフ

積み上げ折れ線グラフ は、グラフタイプドロップダウンから[積み上げ折れ線グラフ]を選択し、X軸とY軸を選択して、[生成]ボタンをクリックすることにより生成できます。

クエリツールグラフビジュアライザー積み上げ折れ線グラフ

棒グラフ

棒グラフ は、GraphTypeドロップダウンから[BarChart]を選択し、X軸とY軸を選択して、[Generate]ボタンをクリックすることで生成できます。

クエリツールグラフビジュアライザー棒グラフ

積み上げ棒グラフ

積み上げ棒グラフ は、グラフタイプドロップダウンから[積み上げ棒グラフ]を選択し、X軸とY軸を選択して[生成]ボタンをクリックすることにより生成できます。

クエリツールグラフビジュアライザー積み上げ棒グラフ

円グラフ

円グラフ は、グラフタイプドロップダウンから[円グラフ]を選択し、ラベルと値を選択して、[生成]ボタンをクリックすることにより生成できます。

クエリツールグラフビジュアライザー円グラフ

接続状態

接続ステータス 機能を使用して、クエリツールのステータスアイコンをクリックして、現在の接続とトランザクションのステータスを表示します。

ツールの接続とトランザクションのステータスを照会する

接続を変更する

ユーザーは、クエリツールの既存の開いているセッションから別のサーバーまたはデータベースに接続できます。

  • 接続ステータスの横にある接続リンクをクリックします。

  • ドロップダウンから <NewConnection> オプションをクリックします。

クエリツール接続オプション
  • 接続するサーバー、データベース、ユーザー、ロールを選択し、[保存]ボタンをクリックします。

クエリツール接続ダイアログ
  • 新しく作成された接続がオプションにリストされます。

  • 接続するには、ドロップダウンリストから新しく作成した接続を選択します。

マクロ

クエリツールマクロを使用すると、キーを1回押すだけで事前定義されたSQLクエリを実行できます。事前定義されたクエリには、プレースホルダー$SELECTION$を含めることができます。マクロの実行時に、プレースホルダーは、クエリツールのクエリエディターペインで現在選択されているテキストに置き換えられます。

クエリツールマクロを管理する

マクロを作成するには、 クエリツール の マクロ メニューから ManageMacros オプションを選択します。使用するキーを選択し、マクロの名前、クエリを入力し、オプションで選択プレースホルダーを含めて、 Save ボタンをクリックしてマクロを保存します。

クエリツールManageMacrosダイアログ

マクロを削除するには、 ManageMacros ダイアログでマクロを選択し、 Delete ボタンをクリックします。サーバーは、マクロを削除するかどうかの確認を求めます。

クエリツールManageMacrosクリア行確認

マクロを実行するには、適切なショートカットキーを選択するか、 マクロ メニューから選択します。

クエリツールマクロの実行