SSMSでバッチを送信(たとえば、クエリを実行)すると、ステータスバーに実行にかかった時間が表示されます。ミリ秒の精度でクエリ時間を表示するようにSSMSを構成することは可能ですか?
これが私が話しているバーで、関心のあるセクションが赤丸で囲まれています:
SSMSでバッチを送信(たとえば、クエリを実行)すると、ステータスバーに実行にかかった時間が表示されます。ミリ秒の精度でクエリ時間を表示するようにSSMSを構成することは可能ですか?
これが私が話しているバーで、関心のあるセクションが赤丸で囲まれています:
回答:
私はこれを見つけるまでそれと苦労していました...
また、[プロパティ]ウィンドウを開くと、実行時間がかかる魔法の「接続経過時間」が見つかることがあります。
あなたがしたいことはこれです:
set statistics time on
-- your query
set statistics time off
これにより、メッセージウィンドウに次のような出力が表示されます。
SQL Server実行時間:CPU時間= 6ミリ秒、経過時間= 6ミリ秒。
次のいずれかを実行して、クライアント統計をオンにします。
次に、最後の10回の実行(および平均!)までのタイミング、IOデータ、行数などを記録する新しいタブが表示されます。
実行時間をprocの変数として取得するには:
DECLARE @EndTime datetime
DECLARE @StartTime datetime
SELECT @StartTime=GETDATE()
-- Write Your Query
SELECT @EndTime=GETDATE()
--This will return execution time of your query
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in millisecs]
そしてこれを見て
私は同じことの後で、素晴らしい次のリンクを見つけました:
http://www.sqlserver.info/management-studio/show-query-execution-time/
パフォーマンスを測定する3つの異なる方法を示しています。すべて自分の強みに適しています。私が選んだのは次のとおりです:
DECLARE @ Time1 DATETIME
DECLARE @ Time2 DATETIME
SET @ Time1 = GETDATE()
-ここにクエリを挿入
SET @ Time2 = GETDATE()
SELECT DATEDIFF(MILLISECOND、@ Time1、@ Time2)AS Elapsed_MS
これにより、クエリの結果と、完了までにかかった時間が表示されます。
お役に立てれば。