使用 AUTO_SHRINK ON 收缩数据库,有用还是消耗许多资源?

Ray*_*and 2 sql-server sql-server-2012 windows-server-2012

我有多个不断增长的数据库。因此,我不时截断日志表并缩小最大的数据库。对于最大的(> 40GB),它需要一些时间。

因此,我阅读了有关启用 auto_shrink 的选项,该选项会定期缩小具有一些可用空间的数据库。

我从来没有尝试过,我首先想听听一些意见。使用该选项时,收缩发生的频率如何?它会吃很多内存或CPU吗?

根据此页面,它在后台运行。当然可以,但他们没有回答所需的问题。它需要多长时间和多少内存。收缩数据库 另外,如果一个 100gb 的数据库有 1gb 空闲空间,请不要收缩它......如果它需要很长时间......它需要什么标准?超过 10% 的可用空间?顺便提一句。我还不是专业人士,只是在学习。

Chr*_*own 5

自动收缩是邪恶的。

您不应该手动截断日志文件 - 如果它们不断增长,那么这表明数据库正在使用完整恢复模型并且您没有备份日志。

根据您的恢复要求,要么开始定期进行事务日志备份以减小日志文件大小,要么切换到 SIMPLE。