2008-09-12 7 views
0

.NET Webアプリケーションをテストしています。私は2つの理由からこれを行いました。実際の状況でどのようなパフォーマンスが得られたのか、テスト中に問題が発生していないことを確認したかったのです。アプリケーションでは、通常の職務遂行中と同じように、30人の同時ユーザーがアプリケーションを使用していました。ほとんどのユーザーは、アプリケーションの複数のウィンドウを開いていました。SqlServer Expressのパフォーマンスが遅い

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

これは、運用サーバーにロードしました。 2.66G HzのXeonプロセッサと2 GBのRAMを搭載した仮想サーバーです。私たちはWin2K3 SP2を使用しています。 .NET 1.1および2.0をロードしてSQLExpress SP1を使用しています。

すべてのテーブルのインデックスを再確認しました。それらはすべて元のとおりです。

アプリケーションのパフォーマンスを向上させるにはどうすればよいですか?

答えて

2

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

+0

+ - 860 MB –

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

  2. カラムのテーブルエイリアスを追加して(そしてSELECT *の使用を避けてください)、MSSQLを助けます。カラムがどのテーブルから来るのかを "推測"する必要はありません。

  3. SPROCに移動していない場合、これにより、MSSQLは指定されたクエリの通常の結果セットのデータをよりよくインデックスできます。

  4. あなたのSPROCSの実行計画に従って、あなたが思っているインデックスを使用していることを確認してください。

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

+0

我々はNOLOCKと非常にmeticilousであり、私たちはとのデータを読み取るためにビューを使用しますエイリアス、SPROCSを使用してCRUDとSubSonicを処理します。 –

+0

これがなぜ投票されたのか分かりません。これらの提案はすべて関連しています – rpetrich

+0

私は同意します。たとえそれがここで正確に関連していなくても、それらは有効であり、他人にとって有用であり得る。投票する.. –

0

アップデート:SQL Server Expressは、以前のバージョンのアプリケーションで同じ製品を使用していたため、問題はありません。私はあなたの次のステップがボトルネックの特定にあると考えています。データベース層にあると確信できる場合は、プロファイラトレースを取得し、最も高価なクエリの実行時間を短縮することをお勧めします。

これは、SQL Serverの動的管理ビュー(DMV)および関連する動的管理機能(DMF)から統計を収集するために使用する別のリンクです。 Express版で使用できるかどうかは不明です。 Uncover Hidden Data to Optimize Application Performance


WebアプリケーションにSQL Server Expressを使用していますか?私が知る限り、本番環境にはいくつかの制限があります。

SQL Server Expressは無料で、ISVによって再配布することができます(合意の対象となります)。 SQL Server Expressは、デスクトップおよび小規模サーバーアプリケーションの学習および構築に最適なです。このエディションは、独立系ソフトウェアベンダー、非プロフェッショナル開発者、およびクライアントアプリケーションを構築する趣味者にとって最適な選択です。より高度なデータベース機能が必要な場合は、SQL Server Expressをより洗練されたバージョンのSQL Serverにシームレスにアップグレードできます。

+0

はい、Webアプリケーション用にSQL Server Expressを使用しています。同じSQLExpress DBを使用していても問題なく、従来のaspと同じアプリケーションがあります。このアプリケーションは、古典バージョンの.NETバージョンへのアップグレードです –

+0

制限はRAM、CPUコア&HDDの使用です:http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx – Ant

0

仮想サーバーでディスクのパフォーマンスをチェックします。それが問題の1つであれば、別のスピンドルにデータベースを置くことをお勧めします。

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

0

データを取得した後に接続を閉じてください。

0

SQLプロファイラを実行すると、データベースに送信されたクエリが表示されます。あるクエリを探します

  • が不十分構築
    • 戻ってあまりにも多くのデータ
    • が実行されている回数が多すぎる
    関連する問題