1

特別な目的のアプリケーションに使用される、性能の低い古いタブレット PC で SQL Server Express のインスタンスを実行しています。定期的に SQL Server プロセスが起動し、CPU を 100% 使用してアプリケーションを停止させます。(技術的には、停止するのではなく、主要なプロセスがタイムアウトするまで速度が低下するだけです。) ハードウェアが交換されるまでにはさらに 2 ~ 3 年かかるため、これはオプションではありません。SQL Server Express を調整する方法はありますか?

4

1 に答える 1

3

MSSQL での CPU ホギング アクティビティを特定する方法はいくつかありますが、その時点ではボックスが完全に応答していないため、選択肢はほとんどありません。SQL プロファイラーを使用して、テーブルまたはファイルへのバックグラウンド トレース ログを実行するのが最善の策かもしれません。

ごく最近まで、Profiler を使用するには有料版の MSSQL が必要でしたが、現在、MS には MSSQL Express 2012 SP1 を含む Profiler が含まれています。ここに直接ダウンロードリンクがあります:

http://www.microsoft.com/en-us/download/details.aspx?id=35579

(注意: MSSQL サーバー インスタンスをアップグレードせずに、Profiler をインストールすることもできます)。

これまでにプロファイラーを使用して CPU を大量に消費するクエリを診断したことがない場合は、次の方法をお勧めします。

  • 新しいトレース > MSSQL インスタンスに接続します
  • 「CPU」列が選択されていることを確認してください
  • すべてのクエリ (Statement/Query/Batch/Procedure/etc) の「開始」イベントと「完了」イベントの両方がチェックされていることを確認してください。
  • 「列フィルター」を使用して、「CPU」列に値があるイベントのみを表示します
  • トレースの名前と宛先(テーブルまたは .TRN ファイル)を選択します
  • トレースを開始し、実行したままにします

CPU の問題が発生した後、ボックスが回復したら、トレース結果を開きます。CPU 列と、100% の使用率が開始された日時に特に注意してください。Profiler を使用してトレースを分析する方法の詳細については、次のリンクを参照してください。

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

于 2013-02-26T02:39:10.627 に答える