有没有办法估算 SQL Server 数据库缩减需要多长时间?是否有可用的工具可以提供一些估算?
我们的数据库非常大,因此最好知道数据库不可用的时间(即使只是以小时为单位的近似估计)。
提前致谢!
答案1
很少建议缩小数据库,因为这会导致索引和磁盘碎片。如果您确实需要缩小文件,则该操作是在线操作,根本不会使数据库脱机。
答案2
我不相信在缩减过程中数据库会不可用。我相信这对于运行 DBCC SHRINKDATABASE、DBCC SHRINKFILE 以及从 SSMS 缩减数据库和/或文件都适用。数据库在缩减过程中不会进入单用户模式。我知道的唯一警告是,在备份数据库时不能缩减数据库。
答案3
我认为执行收缩的唯一有效原因是如果你已经启用了表压缩或者分配了过多的可用空间并且磁盘空间不足。
将数据库恢复到其他类似套件上并执行相同操作。
即使是较旧的硬件,至少您也有比较的基准。
看一下使用 TRUNCATEONLY 选项运行收缩,这是一个更快的操作并且可能释放足够的空间而不需要执行页面移动,这是导致表锁定的原因。