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 編資料