Sql-Server

如何查看 DBCC SHRINKFILE 的進度?

  • October 15, 2019

有沒有辦法查看DBCC SHRINKFILE語句的進度?

這是我執行它的方式

dbcc 收縮文件(‘main_data’,250000)

我在 SQL Server 2005 和 2008 上都執行上述語句。

$$ UPDATE $$ 這是我為檢查進度和正在執行的文本而執行的查詢。

select  T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id)
       , R.cpu_time, R.total_elapsed_time, R.percent_complete
from    sys.dm_exec_requests R
       cross apply sys.dm_exec_sql_text(R.sql_handle) T

你檢查過 sys.dm_exec_requests 中的 percent_complete 嗎?

Aaron 的回答是正確的,但我想提醒您不要執行數據文件收縮,因為它會導致可怕的性能問題。我曾經擁有收縮程式碼,所以我知道我在說什麼。查看我昨天寫的這篇博文,它向您展示了我的意思並建議如何在不實際進行收縮的情況下實現收縮:為什麼不應該收縮數據文件

希望這可以幫助!

PS 還有一件事要檢查它是否需要很長時間並且 percent_complete 沒有增加 - 尋找阻塞。Shrink 將無限等待它需要的鎖。

引用自:https://serverfault.com/questions/31554