このページに記載の情報は、2005 年にリリースした PowerGres Plus V2 を対象としています。PowerGres Plus V2 の販売はすでに終了しています。
PowerGres Plus の最新バージョンに関する情報は、製品紹介ページまたは PowerGres 体験記ページを参照してください。
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 のパッケージがインストールされていれば問題ありません。
図 1: JDBC ドライバのインストールの確認方法
以下のように 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
インストールパッケージの確認画面です。 Complete installation を選択したもので、すべてのパッケージがインストールされます。 Next ボタンをクリックします。
図 4: インストール画面 3
インストールされたコマンドは、/usr/bin ディレクトリに以下のようにインストールされます。
gt4pg-admin | Administrator for PostgreSQL 起動コマンド |
gt4pg-explain | Visual Explain for PostgreSQL 起動コマンド |
これで、ツールの環境は整いました。 それでは、次は実際にツールを起動してみましょう。
ツールの起動前に、PowerGres Plus のインスタンスを起動してください。
Administrator は、データベース資産の一覧を表示し、さらに詳細な情報をリスト表示します。 プログラム開発を行う場合に、資源を確認したり、環境を変更することができます。
任意のディレクトリから、以下のようにコマンドを入力します。
gt4pg-admin
操作するインスタンスを定義します。 ファイル メニューから、インスタンス管理 クリックし、新規 ボタンをクリックします。 以下のように、インスタンスへの接続情報を設定して、OK ボタンをクリックして、インスタンスを追加します。
名前 | 任意の名前 |
---|---|
ホスト名 | PowerGres Plus が起動しているサーバ |
ポート番号 | 接続に使用している TCP/IP のポート番号 |
ユーザ名 | ここでは、インスタンス管理者名を入力します。 |
パスワード | インスタンス管理者のパスワードを入力します。 |
図 7: 新規インスタンス画面
データベースのツリーを展開してテーブルを選択するとそのテーブルの情報が画面右側のリストに表示されます。 青く表示されている文字をクリックするとさらにその項目の詳細な情報が表示されます。
図 9: インスタンス情報の詳細表示
Visual Explain は、EXPLAIN コマンド、EXPLAIN ANALYZE コマンドの結果を GUI で表示し、視覚的に見やすくしたツールです。 問合せ実行計画を視覚的に表示し、さらに詳細な情報がリスト形式で表示されるので、開発時の問合せの内容が適当であるかを確認することができます。
任意のディレクトリから、以下のようにコマンドを入力します。
gt4pg-explain
以下のように画面が表示されます。 編集 メニューの データベース をクリックします。
図 10: Visual Explain 画面
新規データベース接続の編集画面が表示されるので、新規 ボタンをクリックします。
名前 | 任意の名前を入力します。 |
---|---|
データベース名 | 接続するデータベース名を入力します。 |
ホスト | 接続するデータベースサーバ名を入力します。 |
ポート番号 | データベースに接続する TCP/IP のポート番号を入力します。 |
ユーザ名 | データベースに接続するユーザ名を入力します。 |
パスワード | データベースに接続するユーザ名のパスワードを入力します。 |
図 11: 新規データベース接続の作成
右上のリストから、今定義した接続情報を選択して、データベースに接続します。
図 12: データベースへの接続
サンプルのために、以下のようなテーブルを予め作成しておきました。
-- -- 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;
画面左のウィンドウは、実行計画の内容が視覚的にわかるように表示されています。 画面右側のウィンドウでは、さらに詳細な情報がリスト形式で表示されています。
図 14: EXPLAIN 実行結果
これでは味気ないので、条件式と JOIN を指定した問合せの SQL 文を入力して、コマンド メニューの EXPLAIN を選択します。
select * from employee, employee2 where employee.id = employee2.id ;
以下のように、EXPLAIN の実行結果が表示されます。
図 15: EXPLAIN 実行結果
今度は、2 個のテーブルが Hash join を用いて、問合せが行われていることがわかります。 このように、SQL 入力エリアに入力した、問合せの実行計画の内容を視覚的に表示し、詳細な情報をリストで確認することができます。
今回は、PowerGres Plus 2.0 で利用可能な、Red Hat Graphical Tool を紹介しました。 Administrator、Visual Explain は、データベース資産を参照、設定したり、問合せの実行計画を確認して、データベースプログラム開発の支援を行い、開発コストの削減を行うことができます。 インストールも、PowerGres Plus 2.0 がインストールされていれば、簡単に導入することができます。 ぜひ一度お試しください。