簡體   English   中英

如何使用Sqlsrv獲取上次查詢的運行時間?

[英]How can I get the last Query's run time with Sqlsrv?

我正在使用PHP 5和sqlsrv數據庫驅動程序。 我將QueryTimeout設置為15秒,因為我反復打了很多不同的服務器,並且如果我打了一次超時,我需要停止操作並打到下一個服務器。

當前,我只是使用一個變量來跟蹤開始時間和結束時間,如果>=我的QueryTimeout則中止,但是有什么方法可以從sqlsrv驅動程序本身獲取實際的查詢時間? 我沒有在sqlsrv函數列表中看到任何看起來有用的東西 我希望能夠獲取上一次查詢的時間,而不是將每個查詢包裝在獲取當前時間的變量中。

因為我不熟悉SQL Server,T-SQL, sqlsrv等, sqlsrv只是在黑暗中拍攝。

http://msdn.microsoft.com/en-us/library/ms189741.aspx

似乎您可以SELECT last_elapsed_time FROM sys.dm_exec_query_stats

您可以使用此:

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)

將其放在查詢的開頭:

SET STATISTICS TIME ON

當您查看輸出結果時,它們將包括時序統計信息。 例如

SQL Server Execution Times:
    CPU time = 47 ms,  elapsed time = 109 ms.

編輯:您必須使用以下命令將sqlsrv設置為不將警告作為錯誤返回:

sqlsrv_configure('WarningsReturnAsErrors', false);

統計信息文本在sqlsrv_errors()中返回

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM