SAK 図書館
PostgreSQL 編3 - ipc-daemon 起動、PostgreSQL 起動、psql 起動、ipgsql
■ipc-daemon 起動、終了
・どうも最初に ipc-daemon を起動しないと PostgreSQL が起動できない。
次のようにバックグランドとして起動する。
尚、「ipc-daemon -q &」とすると、メッセージボックスは表示されない。
ipc-daemon &
いろいろやってみたが ipc-daemon の止め方がわからない。
ps で、PID を調べて kill PID で落として良いのだろうか。(^^;
ps
PID TTY STIME COMMAND
1000 -1 15:14:39 /CYGWIN~1/H-I586~1/bin/bash.exe
1005 -1 15:16:49 /usr/local/bin/ipc-daemon.exe
1006 -1 15:16:52 /CYGWIN~1/H-I586~1/bin/ps.exe
kill 1005
■PostgreSQL 起動、終了
・PostgreSQL の起動は、次のようにする。
「pg_ctl start」で起動すると、「pg_ctl stop」でうまく終われず、
kill もできない。(バラメタは、start、stop、restart、status がある。)
postmaster -i &
これまた、PostgreSQL の終了がうまくできない。
またまた強制終了かな。
うまくコミットされるのか実に不安。(^^;
とりあえず、この組み合わせで何度も起動、終了はできた。
ps
PID TTY STIME COMMAND
1000 -1 15:14:39 /CYGWIN~1/H-I586~1/bin/bash.exe
1647 -1 16:04:22 /usr/local/bin/ipc-daemon.exe
1648 -1 16:04:56 /usr/local/pgsql/bin/postgres.exe
1651 -1 16:05:57 /CYGWIN~1/H-I586~1/bin/ps.exe
kill 1648
・PostgreSQL の消費メモリは実に小さい。テストデータしかない関係かもし
れないが、Oracle9i がサービスで 300MB もメモリを消費するのに比較する
と、PostgreSQL は、25MB 程度しかサービスで消費していない。
OS 部分と含めても 180MB 程度である。(Windows2000、Cygwin 2.05b)
(メモリ消費的には、PostgreSQL 7.2.3 も 7.0.2 も大差はない。)
テーブルやレコード数によって、動的にメモリの消費量が増える可能性は
あるが、256MB の実装メモリがあれば、そこそこ快適に動作しそうに思う。
(Oracle9i は、512MB 以上の実装メモリが必要である。)
・PostgreSQL のレイポンスであるが、UNIX 系でなく Windows2000 でサービ
スした場合、どうなのか気になって更新レスポンステストを実施した。
結果は、次のとおりである。
-- 10,000 件のレコード追加 (5 レコード 1 トランザクション * 2000 回)
-- CPU Pentium4 - 2GHz、MEM 1GB、HDD 200GB(ATA-RAID0)
-- OS Windows2000
PostgreSQL 7.0.2 - 82 秒 VB6 ADO ODBC PostgreSQL
PostgreSQL 7.2.3 - 44 秒 VB6 ADO ODBC PostgreSQL
Oracle9i - 17 秒 VB6 ADO ODBC Microsoft ODBC for Oracle
Oracle9i - 21 秒 VB6 ADO ODBC Oracle in OraHome90
Oracle9i - 10 秒 VB6 oo4o
PostgreSQL 7.2.3 - 41 秒 JAVA Servlet JDBC pgjdbc2.jar
Oracle9i - 18 秒 JAVA Servlet JDBC classes12.jar
** 10,000 レコード 1 トランザクションにすると、どれも 4 倍ぐらい
高速になると推察する。
Oracle9i がメモリにものを言わせて超高速ではある。
特に oo4o アクセスは、抜群に速かった。
同じ Oracle ODBC ドライバでも Oracle 提供のものより、Microsoft 提供
のドライバの方が高速である。
ADO で比較すると、Oracle9i の 1 / 3 の性能を PostgreSQL 7.2.3 は出し
ている。(UNIX API エミュレーションで、ある程度速度低下していると思う。)
Oracle の以前のバージョンは 9i ほどのパフォーマンスがなかったように
体感しているので、Windows サービスでの PostgreSQL 7.2.3 もそこそこ
実用になりそう。(安定性もありそうに感じる。)
ただ、大量のレコードを扱う場合、やはり、PostgreSQL は UNIX 系サーバ
でサービスした方が良いかと思う。
尚、PostgreSQL 7.2.3 は、7.0.2 の 2 倍のパフォーマンスがある。
DB の持ち方もかなり変わっており、速さ的にも比較的新しいバージョンを
使用した方が良さそうである。
JDBC と ODBC でのアクセス差は、ほとんどないようである。
PostgreSQL 7.2.3 については、わずかではあるが JDBC アクセスの方が速い。
■psql 起動、終了
・psql は、Oracle の SQL*Plus と同等である。
(Cygwin 2.05b と less290i.tgz で psql での select 日本語表示可能。)
次のように起動する。
psql -h sak-design template1
| |_ dbname [username]
|_ hostname or IP
終了は、次のように入力する。
\q
尚、select 等の問い合わせ後の待ちを抜けるのは、「q」キーを押す。
(最近のバージョンでは、多量のレコード問い合わせ以外は待ち合わせ
しないようになっている。)
■Interactive PostgreSQL(ipgsql) インストール
・Windows 用の GUI SQL ツール(ipgsql-1.6.2.zip) を見つけた。
(最近の PostgreSQL バージョンでは、使用できない。)
解凍し、libpq.dll を Windows2000 では、system32 ディリクトリに移動す
る。他のファイルは、C:/cygnus/ipgsql/ipgsql.exe となるように移動する。
ipgsql.exe のショートカットを作成し、Windows から起動する。
尚、当然であるが、PostgreSQL のサービスを起動しておかないと接続でき
ない。
・簡単に試した見た感じ、psql より使いやすい。
テーブル一覧もツールアイコンで表示できる。
ただ、日本語データが入力できない。
化け化けである。(^◇^;)
何か設定がないものだろうか。
日本語に対応できない可能性は高い。(^^;
尚、表示は化けるが、psql と同様に日本語 EUC で書いたテキストファイル
を実行させると日本語も処理はできる。
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料