[pgsql-jp: 28296] Re: マルチスレッドは速い?
Jun Kitamura
kitamura @ zoozee.jp
2002年 12月 13日 (金) 13:58:42 JST
北村@zoozee です。
> >>2)Javaアプリケーションをマルチスレッドにするとトータルの
> >>スループットが落ちます。CPUはほとんどフルの状態です。
> >>商用データベースではマルチスレッドにするとスループットは
> >>上がるのですがPostgreSQLでは逆になります。
> >
> >
> > 現状のPostgreSQLのプロトコルかJDBCドライバが、
> > とくにスレッドを考慮した造りになっていないからでしょう。
> > コネクションを複数用意して それらで平行アクセスすれば速くなったりしませんか?
>
>
> コネクションはもちろんスレッド毎に作成しています。
コネクションをスレッド毎に作成するのではなく、コネクションマ
ネージャークラス(Singletonデザインパターンのような)から、コ
ネクションを貰う、返す、という方法にしないと、「コネクション
を張る動作」がボトルネックになり、遅くなると思います。
それから、PostgreSQL の JDBCドライバの中の Statement クラス
はスレッドセーフです。1つのコネクションの中で Statement を複
数スレッド上で動作させるだけで、速くなりますよ。
(やってる内容によりますが)。
ではでは。
pgsql-jp メーリングリストの案内