如何显示查询结果显示前的执行时间

时间:2009-05-22 06:28:52

标签: sql-server-2005

如何显示查询结果显示前的执行时间

5 个答案:

答案 0 :(得分:0)

如果您从代码中调用查询,则可以使用秒表为查询计时。在执行之前启动它并在之后立即停止。

答案 1 :(得分:0)

您的意思是让您的程序显示“查询完成时剩余时间”计数器或进度条,例如在Windows资源管理器中删除大量文件时?

通常不可能。许多查询无法在没有做大量工作的情况下“提前”进行估算,因此在查询几乎完成之前,估计的完成时间将无法使用。

通过表进行简单的线性搜索可能是一个简单的情况,但是添加其他约束或使用索引会引起麻烦。

(即使是从Windows中删除大型目录的例子也充满了问题 - 他们必须先扫描整个目录来计算文件,然后再开始删除它们,这样他们就可以向你显示进度条了;这就是为什么我倾向于从命令行破坏大目录以节省时间。)

答案 2 :(得分:0)

  
    

如何显示查询结果显示前的执行时间

  

您可以使用“sys.dm_exec_requests”,但它只支持下面列出的一些操作。显然它不能支持普通的DML / select查询。 sys.dm_exec_requests (Transact-SQL)

ALTER INDEX REORGANIZE

AUTO_SHRINK option with ALTER DATABASE

BACKUP DATABASE

CREATE INDEX

DBCC CHECKDB

DBCC CHECKFILEGROUP

DBCC CHECKTABLE

DBCC INDEXDEFRAG

DBCC SHRINKDATABASE

DBCC SHRINKFILE

KILL (Transact-SQL)

RESTORE DATABASE, 

UPDATE STATISTICS.

答案 3 :(得分:0)

异步运行查询。 使用ADO,它类似于this。 对于ADO.NET,请参阅this

然后,显示计时器,直到您获得完成事件。

答案 4 :(得分:0)

long inicioBusquedaLong=Calendar.getInstance().getTimeInMillis();
this.setListaTramite(this.buscarCriterio());

long finBusquedaLong=Calendar.getInstance().getTimeInMillis();
this.tiempoBusqueda=finBusquedaLong-inicioBusquedaLong;