2009-09-30 11 views
17

私はSQL Server 2008 Enterprise + C#+ ADO.Net + .Net 3.5を使用しています。アクティブな接続番号を見つけるためにsp_who2またはsys.dm_exec_connectionsを使用しています(アクティブな接続番号が見つからない方法を教えてください)。重いデータベースのコンシューマ向けアプリケーションでは、アクティブな接続数> 1000でも確認できます。SQL Serverの接続数の制限はありますか?

SQL Serverのアクティブな接続数に上限があるかどうかは疑問です。事前に

おかげで、 ジョージ

答えて

25

これは、インスタンスごとではなく、データベースごとに、設定です。現在の値はsys.configurationsで確認でき、sp_configureで変更できます。関連するオプションがuser connections次のとおりです。

にユーザー接続オプションを使用するMicrosoft SQL Server上 許可 同時ユーザー接続の最大数を指定します。実際の のユーザー接続数は であり、使用しているSQL サーバーのバージョンと のアプリケーションとアプリケーションの範囲は、 のハードウェアによって異なります。 SQL Serverでは、32,767ユーザー接続のうち、最大で が許可されています。

1000個の接続は非常に多くありません。ハイエンドシステムでは、サーバーは複数のポートaffinitized to NUMAノードをリッスンし、各ノードに数百、数千のクライアントを接続できます。

接続数は個の要求の数とは異なります。積極的に何かを実行している接続、sys.dm_exec_requests。各リクエストには1人または複数のワーカーが必要で、ワーカーの数はmax worker threadsオプションで設定されます。

+0

とても優秀なので、しばらく勉強しましょう。 :-) – George2

+1

私もそうです:)私は、32k +ユーザスロットは決して懸念されることはないと常に思っていましたが、これらの詳細は本当に良い詳細です。 –

+0

日産のおかげで、私は以下のリンクを調べました。http://msdn.microsoft.com/en-us/library/ms143432.aspx、私の最も混乱は - "クライアントごとの接続"と "ユーザー接続"? – George2

3

http://msdn.microsoft.com/en-us/library/ms143432.aspx

32767は、データベースごとの最大制限があります。次のように

私はそれを行うだろう:

SELECT 
    COUNT(*) 
FROM 
    master.dbo.syslockinfo 
WHERE 
    DB_NAME(rsc_dbid) = 'your_database_name' 
+0

有効な接続番号を見つける方法が正しいですか?はいの場合、私が見つけた数が32,767を超えてはならないことを意味しますか? – George2

+0

私が探している接続番号があなたが言ったのと同じものであることを確認したいだけです。 :-) – George2

+0

あなたのMSDNのドキュメントから、私の最も混乱は - "クライアントごとの接続"と "ユーザー接続"の違いは何ですか? – George2

関連する問題