2017-04-19 13 views
0

私はC#で使用するSQL Server 2008について2つの質問があります。sql接続の最適化

質問1:C#での接続SQL Server 2005の同時クエリの数はいくらですか?

私の接続文字列は次のとおりです。

Data Source = localhost;database=TaskQueue;Persist Security Info=True;integrated security=SSPI; MultipleActiveResultSets=true; Connection Timeout=0;Pooling=false; 

質問2:接続の生産寿命は何ですか?私は、アプリケーションを実行している途中でグローバル接続を開いたままにして、この接続に使用するだけです。 この方法で問題が発生しますか?

+0

など、孤立した接続、背中にこれを回すお勧めします:// stackoverflowのを.com/questions/1499718/any-limit-of-sql-server-connection-count – maSTAShuFu

+0

パート2に答えるには、https://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110)を参照してください。 ).aspx基本的には、接続が可能な限り短命になるようにして、フレームワークが提供するプールに返すことができます。 –

答えて

1

c#の接続SQL Server 2005の同時クエリ数はいくらですか?

SQL Server 2005 Standard Editionは、最大32,767の同時接続をサポートできます。

接続の生産性は何ですか?私は、アプリケーションを実行している途中でグローバル接続を開いたままにして、この接続に使用するだけです。この方法で問題が発生しますか?

SQL Serverがconnection poolingを活用して、そのように、あなたは、一般的には対照的に、彼らは使用後にpoolに戻すことができるように、など短命あなたの接続を維持したいと思います。

そこで彼らは、開かれ実行され、適切に開いたままにグローバルな接続を使用するように反対の配置されていることを確認するためにusing文の中で、あなたのSQLの呼び出しをラップ考える:

using (var connection = new SqlConnection("your-connection-string")) 
{ 
    // Do stuff 
} 

接続文字列をチェック

既存の接続文字列が明示的に無効になっているため、組み込みの接続プーリングを利用できなくなります。

Data Source = ...; Pooling=false; 

あなたは絶対にあなたが何をしているか知っている限りそれ以外の場合はあなたには、いくつかの予期しない動作が発生する可能性がありますように私は非常にあなたがこの場合はhttpチェックすることができます

+0

Pooling = falseを使用しない場合。エラー通過: タイムアウトは、私が { //ものに を行う}(VAR接続=新しいSqlConnectionオブジェクト(「あなたの接続文字列を」))を使用して を使用する前に、プール –

+0

から接続を取得するには、経過タイムアウト期間を満了しエラーを渡す –