Sql server 如何在延迟删除操作后获得新的数据库大小?
我们一直在使用sys.database_files视图和FILEPROPERTY函数来获取数据库的大小。不幸的是,正如我刚刚在中发现的,sys.database_文件返回的值并不总是可靠的: 当您删除或重建大型 索引,或删除或截断大型 表,则数据库引擎延迟 实际页面解除分配及其 关联锁,直到 事务提交。延期付款 操作不释放已分配的资源 马上离开。因此, sys.database\u文件返回的值 落下或落下后立即 截断大型对象可能不会 反映实际磁盘空间 可用。更多信息 关于递延分配,请参阅Sql server 如何在延迟删除操作后获得新的数据库大小?,sql-server,tsql,Sql Server,Tsql,我们一直在使用sys.database_files视图和FILEPROPERTY函数来获取数据库的大小。不幸的是,正如我刚刚在中发现的,sys.database_文件返回的值并不总是可靠的: 当您删除或重建大型 索引,或删除或截断大型 表,则数据库引擎延迟 实际页面解除分配及其 关联锁,直到 事务提交。延期付款 操作不释放已分配的资源 马上离开。因此, sys.database\u文件返回的值 落下或落下后立即 截断大型对象可能不会 反映实际磁盘空间 可用。更多信息 关于递延分配,请参阅 因此
因此,如果刚刚删除了一个大表,那么何时可以可靠地查询sys.database_files视图?我要等多久?您可以使用
系统分配单元
DMV
当延迟下降暂停时,分配单位仍将显示在类型
列中