1. ホーム
  2. performance

[解決済み] t-sqlのクエリ実行にかかる時間の測定

2022-04-15 22:16:17

質問内容

SqlServer 2005を使用して、2つのt-sqlクエリを持っています。それぞれが実行されるのにかかる時間を測定するにはどうすればよいですか?

ストップウォッチではダメなんです。

解決方法は?

イベント間の経過時間(quot;elapsed time")を測定する単純な方法の1つは、現在の日付と時刻を取得することのみです。

SQL Server Management Studioで

SELECT GETDATE();
SELECT /* query one */ 1 ;
SELECT GETDATE();
SELECT /* query two */ 2 ; 
SELECT GETDATE(); 

経過時間を計算するには、これらの日付の値を変数に取り込んで、DATEDIFF関数を使えばいいのです。

DECLARE @t1 DATETIME;
DECLARE @t2 DATETIME;

SET @t1 = GETDATE();
SELECT /* query one */ 1 ;
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;

SET @t1 = GETDATE();
SELECT /* query two */ 2 ;
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;

これは一つのアプローチに過ぎない。SQL Profilerを使えば、クエリの経過時間を知ることもできます。