[pgsql-jp: 32188] Re: connect のエラー

gcd00051 @ nifty.ne.jp gcd00051 @ nifty.ne.jp
2004年 2月 5日 (木) 15:12:13 JST


川合孝典です。
#仕事中なので簡単にだけ

----- Original Message -----
>To: pgsql-jp @ ml.postgresql.jp
>From: levin <levinlica @ yahoo.co.jp>
>Date: Thu, 5 Feb 2004 14:33:10 +0900 (JST)
>Subject: [pgsql-jp: 32187] Re: connect のエラー
>
>
>levinlicaです。
(中略)
>Apache::DBIで永続接続すると、複数のプログラムが実行され
>てもpostgreSQLでは1つのconnectとして扱うのでしょうか。
mod_perlで動かした場合、1つ1つのCGIスクリプトは独自の名前空間が
つけられた関数のように実行されます。
そしてApache::DBIでは同じ接続設定(接続先、ユーザ名などで判定)で
あれば同じハンドルを使いまわす、より大きなプログラムの中の
グローバル変数のようにデータベース・ハンドルを保持しているような
形になります。
普通にDBIを利用した場合には、各スクリプトが呼び出されるたびに
connect、disconnectが行われてしまいますが、Apache::DBIを利用すると
Apacheの子プロセス1つ1つが同じ接続設定については1回しか接続せず、
同じデータベース・ハンドルを使いまわすということになります。

並行して動くプロセスの数だけ接続することになりますから、
いずれにして同時に接続できる数に直接、変わりはありません。

しかしconnect/disconnectは負担のかかる処理ですし、その回数が大きく
減らせますから、全体としてのパフォーマンスはあがるのではないかと
思っています。



pgsql-jp メーリングリストの案内