トップ回答者
SQL Server 2005 接続プールを有効にする方法

質問
-
回答
-
kita3 さんからの引用 Oracleでは共有サーバ接続機能を用いることで接続プール機能を使うことができるのですが、
同様の機能がSQL Server 2005にあればベストなのですが…
Oracleのはサーバ側でサポートしている接続プール機能ですね。そのため、クライアント側はある意味なんでも良いのですが、SQL Server 2005にはサーバ側で接続プール機能はサポートしていなかったと思います(あらためてMSDNなどを調べてみましたが見つかりませんでした)。
そのためSQL Serverでは、接続プール機能のあるクライアントコンポーネント(ADO.NETのSystem.Data.SqlClientなど)を使う必要があると思います。
ご質問では、.NET FrameworkもOLE DBやODBCなども使わないということですが、SQL Serverとの接続はどのような方法が候補に挙がっているのでしょうか。その候補を列挙して頂ければ、もしかしたら接続プール機能のあるものもあるかも知れませんし、その候補について詳しい方もいらっしゃるかも知れません。
-
米田です。
>Oracleでは共有サーバ接続機能を用いることで接続プール機能を使うことができるのですが、
Oracleについて、記述が主客が混乱しているように見えます。意図としては、ユーザー、あるいはクライアントプログラムからの接続に対し、プロセス数をおさえ
リソースを節約したい(=スレッドで動いて欲しい)でいいでしょうか?
SQL Server 2005については、まず Books Online の
データベース エンジンの高度な詳細事項 > リレーショナル データベース エンジンのアーキテクチャ > スレッドおよびタスクのアーキテクチャ
と、それ以下を読んでください。MS SQL Server は、Windows専用に開発されてきたため、原則的に常にマルチスレッドで動きます。この点では、いっさい設定、指定は不要です。
次に、その上で、クライアント-サーバー間の接続を節約する点では、
>SQL Serverとの接続は、仲介するソフトを最小限に抑えたいため、T-SQLによるアクセスを考えています。
>サーバ側で接続プール機能をサポートしていないのでしたら、クライアントからの接続時にプーリング処理を行なうプログラムを自作するしかないでしょうか。
基本的には、不要です。気になるならT-SQLをどの接続方法で、SQL Server 2005に伝えるかを例示してください。
SQL Server 2005に付属のクライアント側ライブラリは、コネクションプーリングが最初から有効なので、バージョンが古くないか、標準的でないライブラリを使用していないかが問題になる程度です。
(旧バージョン向けや、サードパーティー提供の場合にはコネクションプーリングがないこともあります)
すべての返信
-
kita3 さんからの引用 Oracleでは共有サーバ接続機能を用いることで接続プール機能を使うことができるのですが、
同様の機能がSQL Server 2005にあればベストなのですが…
Oracleのはサーバ側でサポートしている接続プール機能ですね。そのため、クライアント側はある意味なんでも良いのですが、SQL Server 2005にはサーバ側で接続プール機能はサポートしていなかったと思います(あらためてMSDNなどを調べてみましたが見つかりませんでした)。
そのためSQL Serverでは、接続プール機能のあるクライアントコンポーネント(ADO.NETのSystem.Data.SqlClientなど)を使う必要があると思います。
ご質問では、.NET FrameworkもOLE DBやODBCなども使わないということですが、SQL Serverとの接続はどのような方法が候補に挙がっているのでしょうか。その候補を列挙して頂ければ、もしかしたら接続プール機能のあるものもあるかも知れませんし、その候補について詳しい方もいらっしゃるかも知れません。
-
ご回答ありがとうございます。
> ご質問では、.NET FrameworkもOLE DBやODBCなども使わないということですが、SQL Serverとの接続はどのような方法が候補に挙がっているのでしょうか。その候補を列挙して頂ければ、もしかしたら接続プール機能のあるものもあるかも知れませんし、その候補について詳しい方もいらっしゃるかも知れません。
SQL Serverとの接続は、仲介するソフトを最小限に抑えたいため、T-SQLによるアクセスを考えています。
サーバ側で接続プール機能をサポートしていないのでしたら、クライアントからの接続時にプーリング処理を行なうプログラムを自作するしかないでしょうか。
-
米田です。
>Oracleでは共有サーバ接続機能を用いることで接続プール機能を使うことができるのですが、
Oracleについて、記述が主客が混乱しているように見えます。意図としては、ユーザー、あるいはクライアントプログラムからの接続に対し、プロセス数をおさえ
リソースを節約したい(=スレッドで動いて欲しい)でいいでしょうか?
SQL Server 2005については、まず Books Online の
データベース エンジンの高度な詳細事項 > リレーショナル データベース エンジンのアーキテクチャ > スレッドおよびタスクのアーキテクチャ
と、それ以下を読んでください。MS SQL Server は、Windows専用に開発されてきたため、原則的に常にマルチスレッドで動きます。この点では、いっさい設定、指定は不要です。
次に、その上で、クライアント-サーバー間の接続を節約する点では、
>SQL Serverとの接続は、仲介するソフトを最小限に抑えたいため、T-SQLによるアクセスを考えています。
>サーバ側で接続プール機能をサポートしていないのでしたら、クライアントからの接続時にプーリング処理を行なうプログラムを自作するしかないでしょうか。
基本的には、不要です。気になるならT-SQLをどの接続方法で、SQL Server 2005に伝えるかを例示してください。
SQL Server 2005に付属のクライアント側ライブラリは、コネクションプーリングが最初から有効なので、バージョンが古くないか、標準的でないライブラリを使用していないかが問題になる程度です。
(旧バージョン向けや、サードパーティー提供の場合にはコネクションプーリングがないこともあります)