展示在SQL Server中查询需要运行多长时间

3

在SQL Server中是否有一种方法可以查看查询进度?我知道在Oracle中如何做,但我无法确定它是否在SQL Server中可行。

干杯


您可以点击“调试”->“逐步执行”(F11)来分析正在执行的代码部分,或者像在.NET框架中一样创建切换断点。 - Milee
如果你想查看执行所需的时间,请参考以下链接:https://dev59.com/qE7Sa4cB1Zd3GeqP4pJk 和 http://www.redmondpie.com/following-up-with-query-execution-statistics-in-sql-server-2008/ - Milee
2个回答

1

没有直接的方法可以做到这一点,但如果您的查询不止一个选择,则可以插入这些“检查点”:

RAISERROR ('Your message here', 0, 1) WITH NOWAIT

例如。
SELECT ... FROM ...
RAISERROR ('33% .... DONE', 0, 1) WITH NOWAIT
SELECT ... FROM ...
RAISERROR ('66% .... DONE', 0, 1) WITH NOWAIT
...
...

您可以在消息窗口中查看进度。

有时这是非常有帮助的事情。


+1,但要小心使用“%”,它是格式说明符的一部分。 - John Dewey

0

不完全是这样。如果你想要一个命令来表示:这个查询已经完成了35%,那么你是不可能得到的。因为SQL Server无法提前知道查询会满足多少行,所以它也无法知道查询还有多久才能完成。

但你可以运行sp_who2 'active'并查找你的任务。虽然它不能告诉你查询还需要多长时间才能完成,但你可以实时查看它正在运行多长时间。

使用SET STATISTICS TIME ON或跟踪文件可以在查询运行后向你展示信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接