0

問題の追跡についてあなたの提案が必要です。

早朝にデータ ロード ジョブを実行し、Excel ファイルから SQL Server 2005 db にデータをロードしています。本番サーバーでジョブを実行すると、多くの場合、タスクの完了に 2 ~ 3 時間かかります。完了するまでに合計時間の 99% を費やしている 1 つのジョブ ステップにドリルダウンできます。

ステージング環境 (復元された同じ本番データベース) でジョブ ステップ (ストアド プロシージャ) を実行するのに 9 ~ 10 分かかりますが、ジョブの一部として早朝に実行すると、本番サーバーで同じ時間がかかります。実稼働サーバーは常にジョブ ステップでスタックしていました。

まさにジョブ ステップでトレースを実行し (ジョブ ステップ内の while ループで各ユーザーに対して約 10 個のストアド プロシージャを実行)、情報を収集して問題を解決したいと考えています。

同じことを達成するために SQL Server 2005 で利用できる方法は何ですか? トレースは多くの情報を提供し、(DBA ではないので) トレース情報を分析して把握することは非常に困難になるため、これらの SP に対してのみトレースを実行し、本番サーバーで特定の期間ではなく、トレースを実行したいと考えています。問題。そのため、特定の SP のみに関する情報を収集したいと考えています。

あなたの提案を教えてください。

あなたの時間を感謝し、助けてください。

ありがとう。

4

2 に答える 2

1

SQL プロファイラーを使用します。ストアド プロシージャを含む多くのイベントをトレースし、トレースにフィルターを適用することもできます。

  • 新しいトレースを作成する
  • ストアド プロシージャのみを選択する (RPC:Completed)
  • 読み取る列の「TextData」を確認します
  • [列フィルター] ボタンをクリックします。
  • 左側のナビゲーションから「TextData」を選択します
  • "Like" ツリー ビューを展開し、プロシージャ名を入力します。
  • 「値を含まない行を除外する」にチェックを入れる
  • [OK] をクリックし、[実行] をクリックします。
于 2010-05-18T22:06:06.110 に答える
0

その時点でサーバーで他に何が起こっているかは、他のサーバーでは高速であるが本番環境では高速ではない場合に重要です。統計やインデックスのジョブを毎日バックアップしたりメンテナンスしたりしていませんか?

于 2010-05-18T22:02:28.220 に答える