- - PR -
OO4O接続プール使用(CreateDatabasePool)の意義って?
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-10-15 16:22
こんにちは、がつんです。
今ASP.NETでの開発を行っております。 そこで、OO4ODBアクセス(Oracle9i)のスピードアップの技法として接続プールを使用(設定) してやるとDBからのレスポンスが早くなると聞きました。 OraSession.CreateDatabasePool 20, 100, 200, dbname, cnuser, 0 しかし、何故早くなるのかが調査しましたがイマイチよく理解できません。 どなたか少しでもご存知の方、ヒントなど頂戴できませんでしょうか。 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2003-10-15 16:32
『Oracle Objects for OLE ヘルプ』の「リリース2.2と2.3の新機能」からの引用
>調査しましたがイマイチよく理解できません Closeで接続を破棄してしまうのではなく、プールに一定時間貯めておきます。貯めてある時間内にDataSource, UserName, Passwordが同じ接続要求があれば、プールから取り出して使う、ということです。 おそらく、DataSourceが本当にあるのかチェックしたり、接続というオブジェクトを作るためのメモリ確保が省略されるのでしょう。 [ メッセージ編集済み 編集者: Jitta 編集日時 2003-10-15 16:39 ] | ||||||||
|
投稿日時: 2003-10-15 17:15
Netトレース等で見てみると分かりますが、接続時にはユーザプロセスと
サーバプロセスの間で何度もパケット交換が行われているため、接続には時間がかかります。 この予想以上に重い接続処理を省略することが接続プールを使用するメリットです。 | ||||||||
|
投稿日時: 2003-10-15 17:18
Jittaさん、素早いご回答ありがとうございます。
クリアーになりました。 あと1点だけお聞きしたいのですが、プールに一定時間退避されるオブジェクトは、 DB接続レベルのオブジェクトのみなのでしょうか。つまり、SELECT実行されたカーソル もプールされるのでしょうか? もしこの考え方であるのであれば排他関係はおかしくなる気がしますが・・・ | ||||||||
|
投稿日時: 2003-10-15 17:37
ぴでさん、ご回答ありがとうございます。
実際に動かして試してみた結果、見違えるほど接続処理の時間は早く なりました。 みなさん、ありがとうございました。 | ||||||||
|
投稿日時: 2003-10-15 22:29
カーソルは、closeした時点で破棄されます。だって、今回使ったカーソルをまた使うかどうかはわからないでしょ?動的カーソルであれば毎回違うはずだし、静的カーソルであっても、オープンできるカーソル数の上限が決まっているので、おいておけないでしょう。 ちなみに、サーバ/クライアントともWindowsで、最初の接続だけが異様に遅い場合、ORACLE_HOME/network/ADMIN/sqlnet.oraを修正することで驚くほど早くなります。 #SQLNET.AUTHENTICATION_SERVICESの値が (NTS)になっていたら、(NONE) に修正する | ||||||||
|
投稿日時: 2003-10-16 08:53
使う時に接続しなくてもすぐにSQLを実行できますよね。 それと同じで接続そのものをプールしておくだけですので、他に特別なオブジェクトがプールされるようなことはありません。
接続ユーザが多い場合はディスパッチャに負荷がかかりますから、別途チューニングが必要になるかもしれませんが、これ以上の内容はDB会議室・MLへどうぞ。 @ITにDB会議室が無いのはなぜでしょう?「Master of IP Network」会議室のほうでも時々スレ見かけますが、DB会議室が別にあったほうがいいと思いますが。。。 | ||||||||
|
投稿日時: 2003-10-16 12:49
そうですね、やっぱりそうですよね。ありがとうございます。
そんな技があったとは・・・恐れ入ります、完全に勉強不足でした。 「Master of IP Network」会議室の方も覗いてきます。 Jittaさん、ぴでさん、ありがとうございます! [ メッセージ編集済み 編集者: がつん 編集日時 2003-10-16 12:48 ] [ メッセージ編集済み 編集者: がつん 編集日時 2003-10-16 12:49 ] |
1