当前位置:  开发笔记 > 编程语言 > 正文

计算SQL查询的执行时间?

如何解决《计算SQL查询的执行时间?》经验,为你挑选了6个好方法。

我在我的网站上提供搜索功能,当用户搜索记录然后我想显示查询所用的时间以获得与谷歌相同的结果.当我们搜索任何内容时,谷歌会显示获得结果所需的时间吗?

为此我在我的SP中声明了一个@start变量,并在最后找到差异,如下所示;

DECLARE @start_time DATETIME

SET @start_time = GETDATE()

-- my query
SELECT * FROM @search_temp_table

SELECT RTRIM(CAST(DATEDIFF(MS, @start_time, GETDATE()) AS CHAR(10))) AS 'TimeTaken'

有没有其他简单快捷的方法,或者单行查询,我们可以通过它查找执行查询的时间?

我正在使用SQL Server 2005.



1> Faiz..:

好吧,如果你真的想在你的数据库中做到这一点,有一个更准确的方式,如MSDN中给出的:

SET STATISTICS TIME ON

您也可以从您的应用程序中读取此信息.


如何通过应用程序读取此信息?微软的文章没有提及它的任何内容.我给他们留下反馈,询问我是否必须解析消息输出,或者是否有更结构化的方式来访问定时数据,特别是.NET框架类.
@Triynko:时间可以在[`SqlConnection.InfoMessage`]中读取(http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.infomessage(v = vs.110)的.aspx)-event

2> Navaneet..:

我发现这个更有帮助和简单

DECLARE @StartTime datetime,@EndTime datetime   
SELECT @StartTime=GETDATE() 
--Your Query to be run goes here--  
SELECT @EndTime=GETDATE()   
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in milliseconds]   



3> Josh Stodola..:

我们从应用程序代码中监视这一点,只是为了包括建立/关闭连接和通过网络传输数据所需的时间.这很直截了当......

Dim Duration as TimeSpan
Dim StartTime as DateTime = DateTime.Now

'Call the database here and execute your SQL statement

Duration = DateTime.Now.Subtract(StartTime)
Console.WriteLine(String.Format("Query took {0} seconds", Duration.TotalSeconds.ToString()))
Console.ReadLine()


理想情况下,必须使用`System.Diagnostics.StopWatch`.
我贬低你的anwser,因为它没有回答实际的问题.很好,你已经使用VB解决了它,但考虑将faiz的答案标记为正确的答案

4> 小智..:

请用

-- turn on statistics IO for IO related 
SET STATISTICS IO ON 
GO

并用于计算时间

SET STATISTICS TIME ON
GO

然后它将为每个查询提供结果.在查询输入窗口附近的消息窗口中.



5> 小智..:
declare @sttime  datetime
set @sttime=getdate()
print @sttime
Select * from ProductMaster   
SELECT RTRIM(CAST(DATEDIFF(MS, @sttime, GETDATE()) AS CHAR(10))) AS 'TimeTaken'    



6> Jon Skeet..:

你为什么在SQL中这样做?不可否认,这确实显示了"真正的"查询时间,而不是查询时间+在网络中每次移动数据所花费的时间,但它会污染您的数据库代码.我怀疑你的用户会关心 - 事实上,他们可能更愿意包括网络时间,因为它们都有助于他们看到页面所花费的时间.

为什么不在Web应用程序代码中进行计时?除了别的,这意味着,你的情况并不想做任何时机,但要执行相同的进程内,你不需要浪费时间的东西你不需要.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有