- PR -

接続プール(CreateDatabasePool)の効果する範囲について

1
投稿者投稿内容
がつん
ベテラン
会議室デビュー日: 2003/07/07
投稿数: 62
お住まい・勤務地: Sydney
投稿日時: 2003-10-21 11:19
こんにちは、がつんです。
以前、CreateDatabasePoolの意義についてご教授いただきましたが、
その適用範囲について疑問があります。

ユーザーが同じDBに接続している場合は、接続プールに格納されていたらそれを
使用する。すなわち、新規接続しないので接続速度が向上する。
ここで、ユーザが異なる場合はどうなりますでしょうか。

例えば、
@ユーザーAが新規接続して接続プールを作成する。
AユーザーBがDB接続する。
この場合に、ユーザーBは@の接続プールを参照するのでしょうか。

ご存知の方、ご教授いただけませんでしょうか。よろしくお願いいたします。
ぴで
大ベテラン
会議室デビュー日: 2002/10/10
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2003-10-22 00:14
悩むだけでなく試してみることも大切かと。
V$SESSIONビューを参照すれば、接続がプールされている状態がよく分かると思います。

接続プールは接続処理を省略するだけでなく、接続をユーザ間で共有することで
無駄な接続を増やさずにリソースを節約することもメリットの1つです。
がつん
ベテラン
会議室デビュー日: 2003/07/07
投稿数: 62
お住まい・勤務地: Sydney
投稿日時: 2003-10-22 12:51
ぴでさん、ご回答ありがとうございます。
2回目(1回目のユーザの接続プール使用?)以降の接続処理の早さからも、
どうやらユーザ間で接続プールは共有されているのだな、とは理解できます。

V$SESSIONで確認すると、ユーザの接続数 NOT = セッション数になる。
これが、ぴでさんのおっしゃっている接続がプールされている状態なのでしょうか。
接続プールにあるセッションの情報を確認することは不可能なのでしょうか。

接続プールを使用する目的も、使用方法も理解できます。が、原理が理解できません。
「なぜ、ユーザ間で接続プールは共有できるのか...」
私の学習不足です。。。もう一度出直すことにします。
どうもありがとうございました。
ぴで
大ベテラン
会議室デビュー日: 2002/10/10
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2003-10-23 09:13
引用:
がつんさんの書き込み (2003-10-22 12:51) より:
ぴでさん、ご回答ありがとうございます。
2回目(1回目のユーザの接続プール使用?)以降の接続処理の早さからも、
どうやらユーザ間で接続プールは共有されているのだな、とは理解できます。

V$SESSIONで確認すると、ユーザの接続数 NOT = セッション数になる。
これが、ぴでさんのおっしゃっている接続がプールされている状態なのでしょうか。
接続プールにあるセッションの情報を確認することは不可能なのでしょうか。


V$SESSIONのMACHINE列(=接続元のマシン名)、
PROGRAM(=aspnet_wp.exe:ASP.Netワーカプロセス)
の条件でしぼれば、プールされている接続だけが表示されます。(複数のプールをがない場合)

引用:
接続プールを使用する目的も、使用方法も理解できます。が、原理が理解できません。
「なぜ、ユーザ間で接続プールは共有できるのか...」
私の学習不足です。。。もう一度出直すことにします。
どうもありがとうございました。

接続プールはアプリケーション内の1ヶ所で管理されていて、ユーザが接続するにはそこでプールされている接続を使用するから、という理由じゃ分かりませんかね。
1

スキルアップ/キャリアアップ(JOB@IT)