如何使用Sqlsrv获取最后一个Query的运行时间?

时间:2012-06-06 13:49:47

标签: php sql-server

我正在使用PHP 5和sqlsrv数据库驱动程序。我设置了一个15秒的QueryTimeout,因为我重复点击了很多不同的服务器,如果我达到超时,我需要停止操作并点击下一个服务器。

目前我只是使用一个变量来跟踪开始时间和结束时间,并且如果它是>=我的QueryTimeout则中止,但有没有办法让实际的查询超时sqlsrv驱动程序本身?在list of sqlsrv functions中,我没有看到任何看起来有帮助的东西。我希望能够获得最后一次查询的时间,而不是将每个查询包装在获取当前时间的变量中。

3 个答案:

答案 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()

返回