PostgresにNpgsqlを使用する場合、Connection Poolingをよく理解したいと思います。 ( http://www.npgsql.org/ )
接続文字列を使用する場合:
UserID = root; Password = myPassword; Host = localhost; Port = 5432; Database = myDataBase; Pooling = true; Min Pool Size = 0; Max Pool Size = 100;
「プーリング」はどこで行われるのですか?私のアプリケーションサーバーまたはデータベース?
Connection.Open()を呼び出すとどうなりますか?接続が存在する場合はプールから取得され、存在しない場合はプールが作成されますか?
接続プーリングに関するその他の一般的な情報をいただければ幸いです。
ありがとう。
Npgsql接続プーリングはアプリケーションプロセス内に実装されています。PostgreSQLとはまったく関係がないため、PostgreSQLとは関係ありません。
メカニズムは非常に簡単です。プールされた接続を閉じると、PostgreSQLへの接続を物理的に閉じる代わりに、物理的な接続はメモリ内のアイドル状態(「プール」内)に保持されます。次回新しい接続を開くときに、その接続文字列が既にプールに存在する物理接続と一致する場合、新しい物理接続を開く代わりにその物理接続が再利用されます。
物理接続の開閉は負荷の高いプロセスであるため、これによりアプリケーションが大幅に高速化されます。