0

.NETWebアプリケーションのストレステストを行っています。これを行った理由は2つあります。実際の条件下でのパフォーマンスを確認し、テスト中に問題を見逃していないことを確認したかったのです。アプリケーションには、通常の仕事の過程で使用するのと同じように30人の同時ユーザーが使用していました。ほとんどのユーザーは、アプリケーションの複数のウィンドウを開いていました。

  • 10人のユーザー:悪くない
  • 20ユーザー:減速
  • 30ユーザー:非常に非常に遅いですが、タイムアウトはありません

本番サーバーにロードされました。これは、2.66GHzのXeonプロセッサと2GBのRAMを搭載した仮想サーバーです。Win2K3SP2を使用しています。.NET 1.1および2.0がロードされており、SQLExpressSP1を使用しています。

その後、すべてのテーブルのインデックスを再確認しましたが、すべて正常でした。

アプリケーションのパフォーマンスをどのように改善できますか?

4

6 に答える 6

3
  1. アプリケーションの実行方法によっては、同時実行の問題が発生する可能性があります。「nolock」キーワードを使用して読み取りを実行してみてください。

  2. 列のテーブルエイリアスを追加してみてください(そしてSELECT *の使用を避けてください)。これは、列がどのテーブルからのものであるかを「推測」する必要がないため、MSSQLに役立ちます。

  3. まだ行っていない場合は、SPROCに移動します。これにより、MSSQLは、特定のクエリの通常の結果セットに対してデータのインデックスを作成しやすくなります。

  4. SPROCSの実行プランに従って、自分が思っているインデックスを使用していることを確認してください。

  5. データベースに対してトレースを実行して、着信要求がどのように見えるかを確認します。特定のSPROCが何度も実行されていることに気付くかもしれません。一般的に、可能であればクライアントに応答をキャッシュするための良い兆候です。(ルックアップリストなど)

于 2008-09-12T14:13:31.627 に答える
3

これは私が考えたものですが、20人以上のユーザーがいるときにSQL Serverが使用しているメモリの量を確認してください。Expressバージョンの制限の1つは、RAMが1GBに制限されていることです。したがって、Expressの制限により、サーバーで使用できるメモリが不足しているという単純な問題である可能性があります。

于 2008-09-12T14:22:24.070 に答える
0

SQL Profilerを実行して、データベースに送信されたクエリを確認します。次のクエリを探します。

  • 返されるデータが多すぎます
  • 不十分に構築された
  • 何度も実行されている
于 2008-09-25T23:00:14.517 に答える
0

更新:以前のバージョンのアプリケーションで同じ製品を使用していたため、SQLServerExpressは問題ではないようです。次のステップは、ボトルネックを特定することだと思います。データベースレイヤーにあることが確実な場合は、プロファイラートレースを取得し、最もコストのかかるクエリの実行時間を短縮することをお勧めします。

これは、SQL Server動的管理ビュー(DMV)および関連する動的管理機能(DMF)から統計を収集するために使用するもう1つのリンクです。Expressエディションで使用できるかどうかわからない。 隠しデータを明らかにして、アプリケーションのパフォーマンスを最適化します


WebアプリにSQLServerExpressを使用していますか?私の知る限り、本番環境での展開にはいくつかの制限があります。

SQL Server Expressは無料で、ISVによって再配布できます(合意が必要です)。SQL Server Expressは 、デスクトップおよびスモールサーバーアプリケーションの学習と構築に最適です。このエディションは、独立系ソフトウェアベンダー、専門家ではない開発者、およびクライアントアプリケーションを構築する愛好家に最適です。より高度なデータベース機能が必要な場合は、SQLServerExpressをより高度なバージョンのSQLServerにシームレスにアップグレードできます。

于 2008-09-12T14:14:31.123 に答える
0

仮想サーバーでディスクのパフォーマンスを確認します。それが問題の 1 つである場合は、データベースを別のスピンドルに配置することをお勧めします。

更新: Gulzar が適切に提案するように、別のスピンドルに移動するか、SQL Server のバージョンをアップグレードします。

于 2008-09-17T14:48:52.577 に答える
0

データを取得した後は、必ず接続を閉じてください。

于 2008-09-17T14:54:34.590 に答える