sql-server – 打开SQL Server自动缩小是否安全?

前端之家收集整理的这篇文章主要介绍了sql-server – 打开SQL Server自动缩小是否安全?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
可以为数据库启用许多sql Server选项,其中一个最容易被误解的选项是自动缩小.安全吗?如果没有,为什么不呢?

解决方法

(我最初问的是一个常规问题,但后来发现了正确的方法 – 感谢BrentO)

没有永不.

我现在已经多次在ServerFault上遇到过这个问题,希望通过一些好的建议来吸引更多的观众.如果人们对这种做事方式不屑一顾,那么我就会很乐意将其删除.

自动缩小是一种非常常见的数据库设置.这似乎是一个好主意 – 从数据库删除额外的空间.有很多“非自愿的DBA”(想想TFS,SharePoint,BizTalk,或者只是常规的旧sql Server),他们可能不知道自动收缩是非常邪恶的.

虽然在Microsoft我曾经拥有sql Server存储引擎并试图删除自动收缩功能,但它必须保持向后兼容性.

为什么自动收缩如此糟糕?

数据库可能会再次增长,为什么要缩小它?

>收缩 – 增长 – 收缩 – 增长会导致文件系统级别碎片并占用大量资源.
>你无法控制它什么时候开始(即使它是常规的)
>它使用了大量资源.在数据库中移动页面会占用cpu,大量IO,并生成大量事务日志.
>这是真正的踢球者:数据文件缩小(无论是否自动)会导致大量索引碎片,从而导致性能不佳.

我曾经做了一篇博客文章,其中有一个示例sql脚本,它显示了它引起的问题并更详细地解释了一下.请参阅Auto-shrink – turn it OFF!(我的博客上没有广告或垃圾).不要因缩小日志文件而感到困惑,这有时是必要且必要的.

所以你自己帮忙 – 查看你的数据库设置并关闭自动小功能.出于完全相同的原因,您也不应该缩减维护计划.把这个词传播给你的同事.

编辑:我应该添加这个,由第二个答案提醒 – 有一种常见的误解,即中断收缩操作会导致损坏.不,不会.我曾经拥有sql Server中的收缩代码 – 它会回滚当前正在执行的页面移动,如果被中断的话.

希望这可以帮助!

猜你在找的MsSQL相关文章