私は、生のデータベースとスナップショットの使用の違いをタイミングしています。SQL Serverストアドプロシージャの正確なタイミングを取得するにはどうすればよいですか?
DECLARE @Loops INT SET @Loops = 1
DECLARE @CPU INT SET @CPU = @@CPU_BUSY
DECLARE @StartDate DATETIME SET @StartDate = GETDATE()
DECLARE @SelectedValue int
WHILE @Loops <= 100
BEGIN
EXEC @SelectedValue = CashFlow.usp_CSF_Report_ProjectedExpendituresByFundingParticipant '7/1/1999'
IF @SelectedValue = 50
PRINT 1
SET @Loops = @Loops + 1
END
PRINT 'usp_CSF_Report_ProjectedExpendituresByFundingParticipant'
PRINT 'Total CPU time: ' + CONVERT(varchar, @@CPU_BUSY - @CPU)
PRINT 'Total milliseconds: ' + CONVERT(varchar, DATEDIFF(ms, @StartDate, GETDATE()))
PRINT ''
をしかし、私は、ストアドプロシージャでそれを実行したときに示したように、私は戻って結果セットを取得: 私は、このルーチンを使用してUDFとビューを時間を計ることができます。
結果を表示するのにかかる時間がタイミングの結果を無効にすることが懸念されます。
これをビューやUDFでラップしようとしましたが、ランダムなオーバーヘッドが増えないという方向での解決策はありません。
表示されないように結果をキャプチャまたは無視するにはどうすればよいですか?
達成することは困難であること、スナップショットの場所とあなたのDBのようなあなたのタイミングを無効にする可能性がある条件がたくさんあります。あなたの時間の結果がまだ有効であると言うのに合理的な時間を考えてもらえませんか? – Licantropo