在SQL Server中是否有一种方法可以查看查询进度?我知道在Oracle中如何做,但我无法确定它是否在SQL Server中可行。
干杯
在SQL Server中是否有一种方法可以查看查询进度?我知道在Oracle中如何做,但我无法确定它是否在SQL Server中可行。
干杯
没有直接的方法可以做到这一点,但如果您的查询不止一个选择,则可以插入这些“检查点”:
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
...
...
您可以在消息窗口中查看进度。
有时这是非常有帮助的事情。
不完全是这样。如果你想要一个命令来表示:这个查询已经完成了35%,那么你是不可能得到的。因为SQL Server无法提前知道查询会满足多少行,所以它也无法知道查询还有多久才能完成。
但你可以运行sp_who2 'active'
并查找你的任务。虽然它不能告诉你查询还需要多长时间才能完成,但你可以实时查看它正在运行多长时间。
使用SET STATISTICS TIME ON
或跟踪文件可以在查询运行后向你展示信息。