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キーを押すと、前の行と同じ深さにテキストを自動的にインデントします。

  • 複数の行を選択してTabキーを押して、インデントテキストをブロックします。

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

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

クエリ履歴パネル

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

クエリツールの履歴パネル

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

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

  • クエリのテキスト。

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

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

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

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

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

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

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

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

データ出力パネル

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

クエリツール出力パネル

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

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

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

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

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

結果セットは次の場合に更新できます。

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

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

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

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

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

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

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

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

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

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

説明パネル

クエリの 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回-オレンジ(赤と黄色の間)色-赤色

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

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

クエリツールEXPLAINPLAN統計

メッセージパネル

[ メッセージ ]タブを使用して、最後に実行されたクエリに関する情報を表示します。

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

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

クエリツールの出力情報

通知パネル

[ 通知 ]タブを使用して、PostgreSQLの リッスン/通知 機能を使用して通知を表示します。詳細については、 PostgreSQL documentation を参照してください。

例:

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

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

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

クエリツールの通知

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

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

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

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

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

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

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

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

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

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

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

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

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

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

折れ線グラフ

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

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

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

積み上げ折れ線グラフ

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

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

棒グラフ

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

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

積み上げ棒グラフ

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

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

円グラフ

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

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

接続状態

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

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

接続を変更する

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

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

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

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

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

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

マクロ

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

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

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

クエリツールの[マクロの管理]ダイアログ

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

クエリツールマクロの管理行のクリアの確認

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

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