« HTTPヘッダー研究その4: IISのHTTPヘッダーを書き換えよう | Main | L4スイッチはDSR構成にすべし »

November 08, 2004

コネクションプールが可能な開発言語を使うべし

開発がし易く生産性が高いという理由でサイト構築にPHP言語やASP言語を選択するサイトが多いと思います。しかしこれらの言語にはコネクションプール機能がないため大規模サイトには不適切と言われています。そこで今回はコネクションプールの考え方と、大規模サイトに相応しい開発言語について考えてみましょう。

【コネクションプールとは?】
DBにアクセスするためには基本的に①DBとコネクションを張り②SQL文を送り③レスポンスを受け取り④DBコネクションを切る、という流れが必要になります。この中で①と④のDBコネクション周りは実はとても負荷が高く、アプリケーションを作成する際はSQL文のチューニングと同じくらいDBコネクション処理コストの削減が重要になります。そこでコネクションを一度張ったらずっとコネクションを切らずに使いまわす(コネクションをプールする)という考え方が生まれました。

【コネクションプールが可能な開発言語とは?】
私の知っている限り、JAVA言語とASP.NETでコネクションプールが実現できます。JAVA言語の場合はどのコンテナを使うかによってコネクションプールの実現方法が変わってきます。TOMCATを使う場合は自分でコネクションプール機能を実装しなければなりません(簡単ですし一般的です。検索すれば該当ソースがたくさん出回っています)。BEA社のWEBLOGIC等のアプリケーションサーバを使う場合はそれ自身にコネクションプール機能が実装されているので邯鄲にコネクションプールが実現できる、らしいです(使ったことないので・・・)。ASP.NETの場合は予めコネクションプール機能がついている、らしいです(これも実はまだ使ったことないです・・・)。

逆にコネクションプールが不可能と言われている開発言語で有名どころではPHP、Perl、ASPあたりでしょうか。Ruby、Python等は知りません。(誰か教えてください)

※ただしテクノロジーは常に進化しているので今日不可能だったことは明日には可能になっているかもしれません。

質問!

どなたかWindowsのODBCでコネクションプール機能を持つものって存在するかご存知ないですか?開発言語レベルでなくODBCレベルでコネクションプールを実現しているものがきっとあるに違いないと思って探したんですがみつからなかったんですよね~。

|

« HTTPヘッダー研究その4: IISのHTTPヘッダーを書き換えよう | Main | L4スイッチはDSR構成にすべし »

データベース」カテゴリの記事

Comments

MSのサポートサイトで
「接続プール」
という名前で検索してみてください。
ODBC 3.0からコネクションプールは対応しています。
また、ASPでの実装方法も公開されています。

Posted by: 流離人 | March 16, 2005 at 10:24 AM

Posted by: blitz | April 22, 2005 at 04:03 PM

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/32004/1898236

Listed below are links to weblogs that reference コネクションプールが可能な開発言語を使うべし:

« HTTPヘッダー研究その4: IISのHTTPヘッダーを書き換えよう | Main | L4スイッチはDSR構成にすべし »