PowerGres

PostgreSQL Graphical Tools ご紹介

このページに記載の情報は、2005 年にリリースした PowerGres Plus V2 を対象としています。PowerGres Plus V2 の販売はすでに終了しています。

PowerGres Plus の最新バージョンに関する情報は、製品紹介ページまたは PowerGres 体験記ページを参照してください。

PostgreSQL Graphical Tools ご紹介 『PowerGres Plus で使用する Red Hat Tools』

はじめに

Red Hat 社は PostgreSQL のデータベースアプリケーションの開発支援を目的に、PostgreSQL – Red Hat Edition Graphical Tools を公開しています。 Java 言語で作成された GPL のオープンソースとして公開されており、データベース資源の定義、操作を行う Administrator と、問合せの実行計画を視覚的に確認できる Visual Explain があります。

Administrator、Visual Explain は以下の URL で公開されています。

https://sources.redhat.com/rhdb/

実際に使ってみようとしたのですが、前提とする関連製品の制約が厳しく、PowerGres Plus 2.0 で使用しようとすると関連製品との依存チェックやバージョンチェックでインストールができませんでした。

今回、PowerGres Plus 2.0 で実行できる Administrator for PostgreSQL と、Visual Explain for PostgreSQL を作成しました。 そのツールをサンプルとしてご提供すると共に、インストール方法、基本的な操作方法についてご紹介します。

インストール方法

今回作成したツールは、PostgreSQL – Red Hat Edition Graphical Tools 3.0 をベースにしておりますので、Red Hat Enterprise Linux AS/ES 3 で動作確認をしております。

関連製品のインストール

今回ご紹介するツールはすべて、PowerGres Plus 2.0 でインストールされるコンポーネントを使用します。 PowerGres Plus 2.0 がインストールされていれば、準備は完了です。

ただし、JDBC ドライバのパッケージがインストールされていることを必ず確認してください。 以下のように rpm コマンドを入力し、pgplus-jdbc のパッケージがインストールされていれば問題ありません。

JDBC ドライバのインストールの確認方法

図 1: JDBC ドライバのインストールの確認方法

サンプル一覧rhdbsample.zip の解凍

以下のように 1 つのファイルと 2 つのディレクトリが展開されます。

ツールは、GPL のオープンソースであるため、差分ソースを格納した Diff ディレクトリと、差分ソースが適用可能なオリジナルソースが添付されています。

ツールのインストール

起動コマンド入力

root で、以下のようにコマンドを入力します。

# ./installer
Exporting RPM gt4pg-admin-2.0-10.noarch.rpm to a temporary location /tmp/gt4pg-admin-2.0-10.noarchmtrmqa.rpm...  done
Exporting RPM gt4pg-explain-2.0-10.noarch.rpm to a temporary location /tmp/gt4pg-explain-2.0-10.noarchmtrmqb.rpm...  done
Exporting RPM gt4pg-docs-3.0-5.noarch.rpm to a temporary location /tmp/gt4pg-docs-3.0-5.noarchmtrmqc.rpm...  done
インストール画面 1

インストーラの初期画面が表示されるので、Next ボタンをクリックします。

インストール画面 1

図 2: インストール画面 1

インストール画面 2

Install Options として、Complete installation を選択し、Next ボタンをクリックします。

インストール画面 2

図 3: インストール画面 2

インストール画面 3

インストールパッケージの確認画面です。 Complete installation を選択したもので、すべてのパッケージがインストールされます。 Next ボタンをクリックします。

インストール画面 3

図 4: インストール画面 3

インストール画面 4

インストールするためのチェックが事前に行われます。 すべて「PASSED.」と表示されたら問題ありません。 Next ボタンをクリックします。

インストール画面 4

図 5: インストール画面 4

インストール画面 5

すべてのパッケージがインストールされたら、Next ボタンをクリックします。

インストール画面 5

図 6: インストール画面 5

インストール画面 6

インストールが正常に終了しました。 Finish ボタンをクリックして、インストーラを終了します。

インストール画面 6

図 7: インストール画面 6

インストールの確認

インストールされたコマンドは、/usr/bin ディレクトリに以下のようにインストールされます。

gt4pg-admin Administrator for PostgreSQL 起動コマンド
gt4pg-explain Visual Explain for PostgreSQL 起動コマンド

これで、ツールの環境は整いました。 それでは、次は実際にツールを起動してみましょう。

ツールの起動前に、PowerGres Plus のインスタンスを起動してください。

Administrator の起動と基本操作

Administrator は、データベース資産の一覧を表示し、さらに詳細な情報をリスト表示します。 プログラム開発を行う場合に、資源を確認したり、環境を変更することができます。

Administrator for PostgreSQL の起動

任意のディレクトリから、以下のようにコマンドを入力します。

gt4pg-admin

新規インスタンスの追加

操作するインスタンスを定義します。 ファイル メニューから、インスタンス管理 クリックし、新規 ボタンをクリックします。 以下のように、インスタンスへの接続情報を設定して、OK ボタンをクリックして、インスタンスを追加します。

名前 任意の名前
ホスト名 PowerGres Plus が起動しているサーバ
ポート番号 接続に使用している TCP/IP のポート番号
ユーザ名 ここでは、インスタンス管理者名を入力します。
パスワード インスタンス管理者のパスワードを入力します。

新規インスタンス画面

図 7: 新規インスタンス画面

インスタンス情報の表示

以下のように追加したインスタンスの情報が表示されます。

インスタンス情報の表示

図 8: インスタンス情報の表示

インスタンス情報の詳細表示

データベースのツリーを展開してテーブルを選択するとそのテーブルの情報が画面右側のリストに表示されます。 青く表示されている文字をクリックするとさらにその項目の詳細な情報が表示されます。

インスタンス情報の詳細表示

図 9: インスタンス情報の詳細表示

Visual Explain の起動と基本操作

Visual Explain は、EXPLAIN コマンド、EXPLAIN ANALYZE コマンドの結果を GUI で表示し、視覚的に見やすくしたツールです。 問合せ実行計画を視覚的に表示し、さらに詳細な情報がリスト形式で表示されるので、開発時の問合せの内容が適当であるかを確認することができます。

Visual Explain for PostgreSQL の起動

任意のディレクトリから、以下のようにコマンドを入力します。

gt4pg-explain

データベースへの接続

以下のように画面が表示されます。 編集 メニューの データベース をクリックします。

Visual Explain 画面

図 10: Visual Explain 画面

新規データベース接続の編集画面が表示されるので、新規 ボタンをクリックします。

名前 任意の名前を入力します。
データベース名 接続するデータベース名を入力します。
ホスト 接続するデータベースサーバ名を入力します。
ポート番号 データベースに接続する TCP/IP のポート番号を入力します。
ユーザ名 データベースに接続するユーザ名を入力します。
パスワード データベースに接続するユーザ名のパスワードを入力します。

新規データベース接続の作成

図 11: 新規データベース接続の作成

右上のリストから、今定義した接続情報を選択して、データベースに接続します。

データベースへの接続

図 12: データベースへの接続

EXPLAIN の実行

サンプルのために、以下のようなテーブルを予め作成しておきました。

--
-- drop old
--
drop table employee ;
drop table employeeinfo ;
drop table employee2 ;
drop table employee2info ;

--
-- create 
--
create table employee ( id integer, text name );
create table employeeinfo( id integer, age integer );
create table employee2 ( id integer not null , text name ,primary key(id));
create table employee2info ( id integer not null, age integer, primary key(id));

--
-- insert
--
insert into employee values( 1111111 , '富士通一太郎' );
insert into employee values( 2222222 , '富士通二太郎' );
insert into employee values( 3333333 , '富士通三太郎' );
insert into employee values( 4444444 , '富士通四太郎' );
insert into employee values( 5555555 , '富士通五太郎' );
insert into employee values( 6666666 , '富士通六太郎' );
insert into employee values( 7777777 , '富士通七太郎' );
insert into employee values( 8888888 , '富士通八太郎' );
insert into employee values( 9999998 , '富士通九太郎' );
insert into employee values( 9999999 , '富士通十太郎' );

insert into employeeinfo values( 1111111 , 10 );
insert into employeeinfo values( 2222222 , 20 );
insert into employeeinfo values( 3333333 , 30 );
insert into employeeinfo values( 4444444 , 40 );
insert into employeeinfo values( 5555555 , 50 );
insert into employeeinfo values( 6666666 , 60 );
insert into employeeinfo values( 7777777 , 70 );
insert into employeeinfo values( 8888888 , 80 );
insert into employeeinfo values( 9999998 , 90 );
insert into employeeinfo values( 9999999 , 100);

insert into employee2 values( 1111111 , '富士通一太郎' );
insert into employee2 values( 2222222 , '富士通二太郎' );
insert into employee2 values( 3333333 , '富士通三太郎' );
insert into employee2 values( 4444444 , '富士通四太郎' );
insert into employee2 values( 5555555 , '富士通五太郎' );
insert into employee2 values( 6666666 , '富士通六太郎' );
insert into employee2 values( 7777777 , '富士通七太郎' );
insert into employee2 values( 8888888 , '富士通八太郎' );
insert into employee2 values( 9999998 , '富士通九太郎' );
insert into employee2 values( 9999999 , '富士通十太郎' );


insert into employee2info values( 1111111 , 10 );
insert into employee2info values( 2222222 , 20 );
insert into employee2info values( 3333333 , 30 );
insert into employee2info values( 4444444 , 40 );
insert into employee2info values( 5555555 , 50 );
insert into employee2info values( 6666666 , 60 );
insert into employee2info values( 7777777 , 70 );
insert into employee2info values( 8888888 , 80 );
insert into employee2info values( 9999998 , 90 );
insert into employee2info values( 9999999 , 100);

SQL 入力エリアに以下のような SQL 文を入力して、コマンド メニューの EXPLAIN を選択します。 以下のように、EXPLAIN の実行結果が表示されます。

select * from employee;

画面左のウィンドウは、実行計画の内容が視覚的にわかるように表示されています。 画面右側のウィンドウでは、さらに詳細な情報がリスト形式で表示されています。

EXPLAIN 実行結果

図 14: EXPLAIN 実行結果

これでは味気ないので、条件式と JOIN を指定した問合せの SQL 文を入力して、コマンド メニューの EXPLAIN を選択します。

select * from employee, employee2 where employee.id = employee2.id ;

以下のように、EXPLAIN の実行結果が表示されます。

EXPLAIN 実行結果

図 15: EXPLAIN 実行結果

今度は、2 個のテーブルが Hash join を用いて、問合せが行われていることがわかります。 このように、SQL 入力エリアに入力した、問合せの実行計画の内容を視覚的に表示し、詳細な情報をリストで確認することができます。

最後に

今回は、PowerGres Plus 2.0 で利用可能な、Red Hat Graphical Tool を紹介しました。 Administrator、Visual Explain は、データベース資産を参照、設定したり、問合せの実行計画を確認して、データベースプログラム開発の支援を行い、開発コストの削減を行うことができます。 インストールも、PowerGres Plus 2.0 がインストールされていれば、簡単に導入することができます。 ぜひ一度お試しください。

製品・サービスに関するお問い合わせ
03-5979-2701

お問い合せ受付時間 月 - 金 10:00 - 17:00

メールフォームでのお問い合わせ

ページトップへ