我正在使用PHP 5和sqlsrv数据库驱动程序。我设置了一个15秒的QueryTimeout,因为我重复点击了很多不同的服务器,如果我达到超时,我需要停止操作并点击下一个服务器。
目前我只是使用一个变量来跟踪开始时间和结束时间,并且如果它是>=
我的QueryTimeout则中止,但有没有办法让实际的查询超时sqlsrv驱动程序本身?在list of sqlsrv functions中,我没有看到任何看起来有帮助的东西。我希望能够获得最后一次查询的时间,而不是将每个查询包装在获取当前时间的变量中。
答案 0 :(得分:0)
因为我不熟悉SQL Server,T-SQL,sqlsrv
等,所以只是在黑暗中拍摄。
http://msdn.microsoft.com/en-us/library/ms189741.aspx
好像你可以SELECT last_elapsed_time FROM sys.dm_exec_query_stats
答案 1 :(得分:0)
你可以用这个:
DECLARE @start_time DATETIME, @end_time DATETIME
SET @start_time = CURRENT_TIMESTAMP
sql code here
SET @end_time = CURRENT_TIMESTAMP
SELECT DATEDIFF(ms, @start_time, @end_time)
答案 2 :(得分:0)
将其放在查询的开头:
SET STATISTICS TIME ON
查看输出结果时,它们将包括计时统计信息。 e.g。
SQL Server Execution Times:
CPU time = 47 ms, elapsed time = 109 ms.
编辑:您必须将sqlsrv设置为不使用此命令将警告返回为错误:
sqlsrv_configure('WarningsReturnAsErrors', false);
统计信息文本以sqlsrv_errors()
返回