SQL Serverで処理時間を計測する
SQL Serverでパフォーマンスを計測したかったので調査してまとめました.
処理時間を計測する
処理を開始する前にシステム日時を取得し,処理完了後に開始日時とシステム日時の差を取得します.
DATEDIFFの引数を変えれば単位を変えることができます(例ではms).
DECLARE @STARTDATETIME datetime2 = SYSDATETIME()
-- ここに計測したいSQLを書く
SELECT DATEDIFF(MILLISECOND, @STARTDATETIME, SYSDATETIME()) AS PROCESSING_TIME_MS
キャッシュを消す
SQL Serverはデータバッファのキャッシュやクエリプランのキャッシュを再利用する賢いヤツなので純粋な処理時間を計測したい場合はキャッシュを消します.
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
処理を待機する
念のためキャッシュを消した後数秒待機させます.
WAITFOR DELAY '00:00:10'
まとめ
以上をまとめると処理時間を計測することができます.
-- キャッシュを消す
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
GO
-- キャッシュ消去後数秒待機する
WAITFOR DELAY '00:00:10'
-- 開始日時を取得する
DECLARE @STARTDATETIME datetime2 = SYSDATETIME()
-- ここに計測したいSQLを書く
-- 終了日時と開始日時の差から処理時間を取得する
SELECT DATEDIFF(MILLISECOND, @STARTDATETIME, SYSDATETIME()) AS PROCESSING_TIME_MS
Author And Source
この問題について(SQL Serverで処理時間を計測する), 我々は、より多くの情報をここで見つけました https://qiita.com/maitake9116/items/ed3037badc90de18b0e6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .