2011-07-01 8 views
8

私は、「悪い習慣」の領域に入るのが普通だと考えていますが、問題を診断して長時間実行しているスクリプトをマークするのに便利なので、何の質問もしません。スクリプト内で一時停止または待つ方法がありますか?

要するに、短時間、「一時停止」することができるSQL Serverに組み込まれている機能がありますか?

私は夜間のSSISプロセスを使用してデータをエクスポートした後、統計データのさまざまなサブセットを生成します。 SSISパッケージの実行時間に問題がある場合は、エクスポート/バルク挿入の実行時間が非常に長い診断を行うための一連の診断ストアドプロシージャが用意されています。

統計データを生成するSSISプロセスの後半には、プロセスがどこに停滞しているのか分析することができれば、データテーブル内のデータを変更する速度を分析できます。ほとんどの統計的手順は、WHILEループを介して循環され、必要条件が満たされたときに更新されるテーブルにデータを挿入することから始まります。

統計ストアドプロシージャの実行中に特定のメトリックを取得するためにデータを簡単に照会できます。私がしたいのは、そのメトリックを取得し、正確に1秒(または特定の時間量)待って、メトリックを再度比較して比較できるようにすることです。

「一時停止」を実装することで、1秒あたりに実行される挿入、更新、計算の回数を指定し、大きな手順のどの部分が最長であるかを推定できる、より堅牢な診断スクリプトを作成できます。

SQL Server Management Studioで使用できる診断ツールがいくつかあると思います。私は認めています。しかし、通常、SSMS内にツールがある場合、バックエンド機能の多くは、何らかの形の空想的なスクリプトによって模倣することができます。 SSISパッケージが実行されている間に、これらのメトリックを実行したいのは、パッケージ内で実行されるストアドプロシージャをテストするときだけでなく、組み込みの診断を使用することもできます。

ご協力ありがとうございました!このリクエストは100%必要ではありませんが、私の夜間SSISパッケージは大規模になってきており、過去に無視できた "すっきりした車輪"を微調整する必要があります。別のコマンド

WAITFOR DELAYを実行するために、10秒待って -

+2

何あなたの長時間実行手順の実行中に、別のテーブルにタイムスタンプと状態情報を挿入し、ロギングテーブルのアプローチを実装するでしょうか?このようによく構造化されたトレースを使用すると、関心のあるメトリクスを判断することができます。 –

答えて

8

を探しているあなたはWAITFOR DELAY声明

+0

それは私が探しているものです。私はこのタイプのもの(正直な!)のためにGoogleにしようとしましたが、私はそれを見つけることができませんでした。ありがとうございました。 – RLH

7

選択GETDATE() を使用したいです'00:00:10 '; --accept値は、hh:mm:ssの

セレクトのGetDate()

関連する問題