Query Tool¶
クエリツールは、任意のSQLコマンドを実行し、結果セットを確認できる強力な機能が豊富な環境です。クエリツールには、 ツール メニューの クエリツール メニューオプションを介して、またはオブジェクトエクスプローラーコントロールの選択したノードのコンテキストメニューからアクセスできます。クエリツールを使用すると、次のことができます。
アドホックSQLクエリーを発行します。
任意のSQLコマンドを実行します。
SELECTクエリーの結果セットが updatable の場合、編集します。
ユーザーの構成に従って、現在の接続とトランザクションのステータスを表示します。
出力パネルに表示されているデータをCSVファイルに保存します。
テキスト、グラフィカル形式、またはテーブル形式<ahref="https://explain.depesz.com">https://explain.depesz.com</a>と同様に、SQLステートメントの実行プランを確認します。
SQLステートメントに関する分析情報を表示します。
クエリツールの複数のコピーを個々のタブで同時に開くことができます。クエリツールのコピーを閉じるには、タブの X をクリックします。
クエリツールには、2つのパネルがあります。
上のパネルには、 SQLEditor が表示されます。パネルを使用して、クエリまたはスクリプトを入力、編集、または実行できます。また、セッションで実行されたクエリを表示するために使用できる 履歴 タブ、および編集中にテキストスニペットを保持するために使用できる スクラッチパッド も表示されます。スクラッチパッドが閉じている場合、SQLエディターおよび他のパネルを右クリックし、新しいパネルを追加することにより、再度開くまたは追加のパネルを開くことができます。
下部のパネルには、 DataOutput パネルが表示されます。タブ付きパネルには、クエリによって返された結果セット、クエリの実行プランに関する情報、クエリの実行に関連するサーバーメッセージ、およびサーバーから受信した非同期通知が表示されます。
ツールバー¶
ツールバーについては、以降のサブセクションで説明します。
SQLエディターパネル¶
SQLEditor パネルは、クエリを手動で提供したり、別のソースからクエリをコピーしたり、ファイルからクエリを読み取ることができるワークスペースです。SQLエディターには、構文のカラーリングとオートコンプリート機能があります。
オートコンプリートを使用するには、クエリの入力を開始します。クエリエディターに、クエリーに次に存在する可能性のあるオブジェクト名またはコマンドを提案させたい場合は、Control+Spaceキーの組み合わせを押します。たとえば、/" SELECT/ FROM*/"引用符なし、末尾のスペースありと入力し、Control+Spaceキーの組み合わせを押して、オートコンプリートオプションのポップアップメニューから選択します。
クエリーを入力したら、ツールバーから[ Executescript ]アイコンを選択します。SQLエディタパネルの完全な内容は、実行のためにデータベースサーバーに送信されます。SQLエディターに表示されるコードのセクションのみを実行するには、サーバーに実行するテキストを強調表示し、 Executescript アイコンをクリックします。
カーソル位置に基づいてクエリーを実行することもできます。クエリツールはクエリを検出し、カーソル位置が変更されると強調表示されます。次に、現在の下線のあるクエリーを実行するには、ツールバーの Executequery ボタンを押します。セクションが強調表示されている場合、通常の実行と同じように動作します。
警告は、 Underlinequeryatrotation? が False に設定され、 Underlinedqueryexecutewarning? スイッチが True に設定されている場合にのみ表示されます。設定クエリツールのオプション。
コマンドの実行時にサーバーから返されたメッセージは、[ メッセージ ]タブに表示されます。コマンドが成功した場合、[ メッセージ ]タブに実行の詳細が表示されます。
Edit メニューのオプションは、コードのフォーマットとコメント付けに役立つ機能を提供します。
オートインデント機能は、Returnキーを押すと、前の行と同じ深さまでテキストを自動的にインデントします。
2行以上を選択してTabキーを押して、インデントテキストをブロックします。
コード内のSQLスタイルの実装または削除するか、Cスタイルのコメント表記を切り替えます。
ツリービューから特定のオブジェクトを drag and drop することもできるため、長いオブジェクト名の入力にかかる時間を節約できます。オブジェクト名を含むテキストはスキーマで完全修飾されます。必要に応じて二重引用符が追加されます。ファンクションとプロシージャーの場合、ファンクション名とパラメーター名がクエリツールに貼り付けられます。
クエリ履歴パネル¶
QueryHistory タブを使用して、現在のセッションのアクティビティを確認します。
[QueryHistory]タブには、最近のコマンドに関する情報が表示されます。
クエリーが呼び出された日時。
クエリのテキスト。
クエリによって返された行数。
サーバーがクエリーを処理し、結果セットを返すまでに要した時間。
サーバーから返されたメッセージ[ メッセージ ]タブには記載されていません。
クエリのソースツールバーに対応するアイコンで示されます。
pgAdminによって内部的に生成されたクエリーを表示または非表示にすることができます'View/EditData'または'SaveData'操作中。
単一のクエリーを選択して、[ 削除 ]ボタンをクリックすることにより、削除できます。[ QueryHistory ]タブからすべての履歴を削除する場合は、[ RemoveAll ]ボタンをクリックします。
Copy ボタンを使用して、特定のクエリーをクリップボードにコピーでき、 CopytoQueryEditor ボタンを使用して、特定のクエリーをQueryEditorタブにコピーできます。この操作中に、クエリエディターの既存のコンテンツはすべて消去されます。
クエリ履歴は、クエリツールモードで実行している場合、ユーザーごとに各データベースのセッションを超えて維持されます。View/EditDataモードでは、履歴は保持されません。デフォルトでは、最後の20クエリーがデータベースごとに保存されます。これは、MAX_QUERY_HIST_STORED`値をオーバーライドすることにより、 ``config_local.py` または config_system.py config_local.py ドキュメントを参照してください。詳細については、 config_local.py セクションを参照してください。
データ出力パネル¶
DataOutput パネルには、最後に実行されたクエリによって生成されたデータと統計が表示されます。
[ DataOutput ]タブには、クエリの結果セットがテーブル形式で表示されます。次のことができます。
表示された結果セットから選択してコピーします。
Saveresultstofile アイコンを使用して、 DataOutput タブのコンテンツをコンマ区切りファイルとして保存します。
SELECTクエリの結果セットのデータが更新可能な場合は、編集します。
結果セットは次の場合に更新可能です。
すべての列は、単一のテーブルから直接選択されるか、まったくテーブル列ではありませんたとえば、2つの列の連結。テーブルから直接選択された列のみが編集可能で、他の列は読み取り専用です。
テーブルのすべての主キー列またはOIDが結果セットで選択されます。
複数回名前が変更または選択された列も読み取り専用です。
編集可能および読み取り専用の列は、列ヘッダーの鉛筆と鍵アイコンをそれぞれ使用して識別されます。
更新可能なクエリ結果セットが動作するには、psycopg2ドライバーのバージョンが2.8以上である必要があります。
更新可能な結果セットは、データの表示/編集モードの Data Grid と同じであり、同じ方法で変更できます。
自動コミットがオフの場合、データの変更は進行中のトランザクションの一部として行われ、進行中のトランザクションがない場合、新しいトランザクションが開始されます。トランザクションがコミットされない限り、データの変更はデータベースにコミットされません。
保存中にエラーが発生した場合たとえば、NOTNULL制約を使用して列にNULLを保存しようとすると、データの変更が自動的に作成されるSAVEPOINTにロールバックされ、進行中のトランザクションで以前に実行されたクエリがロールバックされないようにします。
[ データ出力 ]パネルに表示される以前のクエリまたはコマンドからのすべての行セットは、別のクエリを呼び出すと破棄されます。別のクエリツールタブを開き、以前の結果を利用可能なままにします。
Explainパネル¶
クエリの Explain または ExplainAnalyze プランを生成するには、ツールバーの Explain または ExplainAnalyze ボタンをクリックします。
Explain および ExplainAnalyze に関連するその他のオプションは、ツールバーの ExplainAnalyze ボタンの右側にあるドロップダウンから選択できます。
pgAdminは Explain[Analyze] プランをJSON形式で生成することに注意してください。
Explain プランの生成が成功すると、Explainパネルの下に3つのタブ/パネルが作成されます。
グラフィカル
EXPLAINVERBOSE はグラフィカルに表示できないことに注意してください。[ グラフィカル ]タブのノードアイコンをクリックして、その項目に関する情報を確認します。右側にポップアップウィンドウが表示され、選択したオブジェクトに関する情報が表示されます。JIT統計、トリガー、および概要については、右上隅のボタンをクリックしてください。必要に応じて、同様のポップアップウィンドウが表示されます。
Explain キャンバスの左上隅にあるダウンロードボタンを使用して、計画をSVGファイルとしてダウンロードします。
Note: SVGとしてのダウンロードは、InternetExplorerではサポートされていません。
説明分析 を伴うクエリプランは、 データ出力 タブで利用できることに注意してください。
テーブル
[ Table ]タブには、プランの詳細が表形式で表示され、 explain.depesz.com と同様の表形式を生成します。テーブルの各行は、 ExplainPlanノード のデータを表します。これには、ノード情報、排他的タイミング、包括的なタイミング、実際の行と計画的な行の差、実際の行、計画された行、ループが含まれる場合があります。
排他的、包括的、および行X列の背景色は、実際と計画の差によって異なる場合があります。
合計クエリ時間の排他的/包括的タイミングのパーセンテージが次の場合>90-赤色>50-オレンジ赤と黄色の間色>10-黄色
プランナーが行数実際と計画を10回誤った場合-黄色100回-オレンジ色赤と黄色の間1000回-赤色
統計
[ 統計 ]タブには、2つのテーブルが表示されます。1.プランノードタイプごとの統計2.テーブルごとの統計
メッセージパネル¶
[ メッセージ ]タブを使用して、最近実行されたクエリに関する情報を表示します。
サーバーがエラーを返した場合、エラーメッセージは[ メッセージ ]タブに表示され、SQLエディターでエラーの原因となった構文に下線が引かれます。クエリが成功した場合、[ メッセージ ]タブには、クエリが完了するまでにかかった時間と取得された行数が表示されます。
通知パネル¶
Notifications タブを使用して、PostgreSQLの Listen/Notify 機能を使用して通知を表示します。詳細については、 PostgreSQL documentation を参照してください。
例
最初の クエリツール セッションで LISTEN/"foo/" を実行
2.別の クエリツール セッションで、 Notify コマンドまたは pg_notify ファンクションを実行して、ペイロードとともにイベントの通知を送信します。
3.最初の クエリツール セッションで 通知 タブを観察できます。ここには、特定のチャネルの記録時間、イベント、プロセスID、およびペイロードが表示されます。
グラフビジュアライザーパネル¶
ツールバーのGraphVisualiserボタンをクリックして、クエリ結果の グラフ を生成します。グラフビジュアライザーは、折れ線グラフ、積み上げ折れ線グラフ、棒グラフ、積み上げ棒グラフ、円グラフをサポートしています。
グラフの種類
生成するグラフの種類を選択します。
X軸
X軸に値を表示する列を X軸 ドロップダウンから選択します。 <RowNumber> オプションを選択して、X軸のラベルとして行数を使用します。
Y軸
Y軸に値を表示する列を Y軸 ドロップダウンから選択します。ユーザーは複数の列を選択できます。ドロップダウンメニューから <SelectAll> オプションを選択して、すべての列を選択します。
ダウンロードとZoomボタン
ズームは、マウスでチャート上のエリアをクリックして選択することにより実行されます。 Zoomtooriginal ボタンを使用すると、元のズームレベルに戻ります。
ボタンバーの Download ボタンをクリックして、チャートをダウンロードします。
折れ線グラフ¶
折れ線グラフ は、グラフタイプドロップダウンから'折れ線グラフ'を選択し、X軸とY軸を選択して、'Generate'ボタンをクリックすることにより生成できます。以下は、従業員名とその給与のグラフの例です。
グラフの各線に異なるスタイルでデータポイントを表示するには、 Preferences Dialog で UseDifferentdatapointtasks? オプションをtrueに設定します。
積み上げ折れ線グラフ¶
積み上げ折れ線グラフ は、グラフタイプドロップダウンから'積み上げ折れ線グラフ'を選択し、X軸とY軸を選択して、'Generate'ボタンをクリックすることにより生成できます。
棒グラフ¶
棒グラフ は、グラフタイプドロップダウンから'BarChart'を選択し、X軸とY軸を選択して、'Generate'ボタンをクリックすることにより生成できます。
積み上げ棒グラフ¶
積み上げ棒グラフ は、グラフタイプドロップダウンから'StackedBarChart'を選択し、X軸とY軸を選択して、'Generate'ボタンをクリックすることにより生成できます。
円グラフ¶
円グラフ は、グラフタイプドロップダウンから'円グラフ'を選択し、ラベルと値を選択して、'Generate'ボタンをクリックすることにより生成できます。
接続ステータス¶
Connectionstatus 機能を使用して、クエリツールのステータスアイコンをクリックして、現在の接続とトランザクションステータスを表示します。
接続の変更¶
ユーザーは、クエリツールの既存の開いたセッションから別のサーバーまたはデータベースに接続できます。
接続ステータスの横にある接続リンクをクリックします。
次に、ドロップダウンから <NewConnection> オプションをクリックします。
次に、接続するサーバー、データベース、ユーザー、およびロールを選択し、[保存]ボタンをクリックします。
新しく作成された接続がオプションにリストされます。
接続するには、ドロップダウンリストから新しく作成した接続を選択します。
マクロ¶
クエリツールマクロを使用すると、キーを1回押すだけで事前定義されたSQLクエリーを実行できます。事前定義されたクエリーには、プレースホルダー$SELECTION$を含めることができます。マクロが実行されると、プレースホルダーは、クエリツールの[クエリエディター]ペインで現在選択されているテキストに置き換えられます。
マクロを作成するには、 クエリツール の マクロ メニューから ManageMacros オプションを選択します。使用するキーを選択し、マクロの名前とクエリーを入力します。オプションで選択プレースホルダーを含めて、 Save ボタンをクリックしてマクロを保存します。
マクロにクエリーを追加するには、クエリーを書いて選択し、クエリツールの[ マクロ ]メニューに移動して、[ マクロに追加 ]をクリックします。クエリはマクロに自動的に保存されます。
マクロを削除するには、[ ManageMacros ]ダイアログでマクロを選択し、[ Delete ]ボタンをクリックします。サーバーは、マクロを削除するかどうかの確認を求めます。
マクロを実行するには、適切なショートカットキーを選択するか、 マクロ メニューから選択するだけです。