2010-09-17 21 views
2

我們一直在使用sys.database_files視圖和FILEPROPERTY函數來獲取數據庫的大小。不幸的是,我在documentation剛剛發現,由sys.database_files中返回的值並不總是可靠:如何在延遲刪除操作後獲取新的數據庫大小?

當你刪除或重建大 索引或刪除或截斷大型 表,數據庫引擎推遲 實際頁面釋放以及它們的 關聯的鎖定,直到 事務提交之後。延期投放 操作不立即釋放分配的 空間。因此,的 值由sys.database_files中 掉落或 截斷一個大對象未必 反映實際的磁盤空間 可用後立即返回。有關延遲分配的更多信息 ,請參閱 Dropping and Rebuilding Large Objects.

所以,如果一個大表剛剛被刪除然後我何時能查詢sys.database_files中查看可靠?我應該等多久?

回答

2

您可以使用​​DMV。

雖然延期降落正在等待,但分配單元仍將在type列中顯示with a 0 value