sql server中獲取要執行的sql或sql塊的執行時間,方法之一如下:
declare@begin
datetime,@end
datetime
set@begin
=getdate
()--
your sql
set@end
=getdate
datediff(millisecond, @begin, @end)/
1000.0
--單位:s
declare執行結果截圖如下:@begin
datetime,@end
datetime
set@begin
=getdate
()select
getdate
()set
@end
=getdate
datediff(millisecond, @begin, @end)/
1000.0
--單位:s
在訊息中,可見執行getdate()方法的時間是極短,可以忽略不計!
下面,以查詢我本地的[user]表為例進行測試:
執行後的當前時間減去執行前的當前時間,即為sql或sql塊的執行用時。
專案中,程式想拿到這個時間,只需把這個sql塊封裝成乙個儲存過程,儲存過程有乙個output引數,
把最後一行的print換成賦值給output輸出引數即可。
儲存過程如下:
create測試demo**:procedure
getexecutetimeproc
@executetime
decimal(18,3
) output as
begin
declare
@begin
datetime,@end
datetime
set@begin
=getdate
()
select
*from
[user
]waitfor delay'
00:00:5'--
暫停5秒,模擬查詢
set@end
=getdate
()
set@executetime
=cast((datediff(millisecond, @begin, @end)/
1000.0) as
decimal(18,3))
endgo
staticdbhelper類:void main(string
args)
};datatable dt = dbhelper.executeselect(sql, parameters,commandtype.storedprocedure).tables[0
];
decimal executetime = convert.todecimal(parameters[0
].value);
int rowcount = 0
;
if (dt != null
)
console.writeline(
"一共有行資料\n查詢耗時秒
",rowcount,executetime);
console.readkey();
}
publicview codeclass
dbhelper
}sqldataadapter sda=new
sqldataadapter(cmd);
sda.fill(ds);
}catch
(exception ex)}}
return
ds; }
}
執行截圖:
獲取sql執行時間
sql server中獲取要執行的sql或sql塊的執行時間,方法之一如下 declare begin datetime,end datetime set begin getdate your sql set end getdate print datediff millisecond,begin,...
獲取sql執行時間
sql server中獲取要執行的sql或sql塊的執行時間,方法之一如下 declare begin datetime,end datetime set begin getdate your sql set end getdate print datediff millisecond,begin,...
獲取程式執行時間
獲取程式執行時間,對程式效能進行度量。include double start clock 段 system 程式名.exe 僅對於dos double end clock double time double end begin clocks per sec 1000 ms include dwo...