2

SQL Server2000DBで開くことができる接続の最適な数はいくつですか。私が働いていた前の会社では、Oracle 8i、8プロセッサマシンを搭載したtru 64ボックスで、8 * 12=96接続が適切な数であるように思われることがわかりました。SQL Server 2000のそのような計算はありますか。DBは2プロセッサ(ハイパースレッド4)マシンで実行されます。DBに対して実行されるトランザクションはたくさんあります。私が尋ねる理由は、通常、何もしていない場合でも約100の接続を開いたままにする傾向があるアプリがあり、それがパフォーマンスの問題の原因である可能性があることを説明するのが難しいためです。たぶん、SQL Serverにはそのような制限はありません...あなたの誰かがこれについていくつかの知恵を注ぐことができますか?感謝します。ありがとう、

私はそれが標準版であることを追加する必要があります。

4

4 に答える 4

1

これがパフォーマンスのボトルネックであるかどうかわからない場合は、接続などを制限するのではなく、それを判断する必要があります。

まだの場合は、次のことを行う必要があります。

  1. SQLプロファイラーを使用して、実行時間の長いクエリを検索します。
  2. データベースサーバーのCPU負荷、メモリ/ページファイルの使用状況、およびネットワークの使用状況を監視します
  3. 最も長く実行されているクエリの1つを見つけ(上記の#1を参照)、負荷のピーク時にこのクエリをデータベースサーバーにスローし、応答時間を記録できる非常に無駄のないテストアプリを作成します。

#1と#2で何も検出されず、#3で、ロード中のデータベースサーバーの応答時間が遅いことが示されている場合は、「接続が多すぎる」などの問題があることがわかります。ただし、#3を実行していない場合は、これを実行することをお勧めします。接続制限などをいじくり回すと、人為的なボトルネックが発生し、問題の根本であるIMOに到達できないように見えるためです。

于 2008-11-04T05:41:10.393 に答える
0

パフォーマンスの問題は、接続数が原因ではありません。

スライダーハウスルールの回答と同様に、簡単な解決策として、接続を制限するのではなく、ハイパースレッディングをオフにすることをお勧めします。 link1link2(注:この人はMS SQL 2005コードに取り組んでいました)

各接続には、わずかな量のメモリが必要です。共有dbロックは、安定性のみを目的としています。

于 2008-11-04T05:59:29.700 に答える
0

MSDNのこのブログ投稿は、制限がないことを示しています-少なくともExpressエディションでは:http: //blogs.msdn.com/euanga/archive/2006/03/09/545576.aspx

そしてこれは、ライトエディションの場合は256になる可能性があることを示しています-http://blogs.msdn.com/stevelasker/archive/2006/04/10/SqlEverywhereInfo.aspx

これも制限を示していません:http ://channel9.msdn.com/forums/TechOff/169030-The-difference-between-SQL-Server-2005-Express-and-Developer-Edition/?CommentID = 299642

さらに、コメントから、http: //msdn.microsoft.com/en-us/library/aa196730(SQL.80).aspxは、最大が32767であることを示していますが、「理想的な」ものはありません。

于 2008-11-03T15:35:03.830 に答える
-1

アプリが長時間実行されるアプリであり、同じサーバー上にある場合、ロックを作成したデータベース ハンドルを開いたままにしておくと、パフォーマンスが大幅に低下します。select * from sys.dm_tran_locks や sp_lock などを確認して、アイデアを得ることができます。

于 2008-11-04T03:29:22.080 に答える