如何检测 DBCC ShrinkDatabase 完成百分比?

Aas*_*lah 5 sql-server

最近我们从一个非常大的生产数据库中归档了一些数据,需要缩小所有数据文件以重新获取磁盘空间。

问题是它花费了太多时间,我们无法确定完成了多少工作,DBCC ShrinkDatabase因此我们可以估计剩余的执行时间。

有什么快速的方法可以获得DBCC ShrinkDatabase任务的完成百分比吗?

Aar*_*and 10

好吧,您永远不应该使用DBCC SHRINKDATABASE,恕我直言-如果您根本需要缩小文件,您应该三思而后行,甚至可能三思,甚至在确实有必要的奇怪情况下(提示:这应该很少见) ,您应该使用DBCC SHRINKFILE. 请阅读此页上的每一个字

无论如何,您可以使用以下方法查看进度:

SELECT percent_complete, estimated_completion_time
  FROM sys.dm_exec_requests
  WHERE session_id = <spid running the shrink>;
Run Code Online (Sandbox Code Playgroud)

的文档sys.dm_exec_requests