Aaron Hurst Asked: 2016-01-16 08:25:12 +0800 CST2016-01-16 08:25:12 +0800 CST 2016-01-16 08:25:12 +0800 CST 完整数据库备份期间的索引碎片整理 772 在完整数据库备份期间运行索引碎片整理有哪些性能缺陷?有没有办法在备份开始时暂停/停止索引碎片整理? 当 frag 介于 10% 和 30% 之间时,我使用 Reorganize,当 frag 大于 30% 时,我使用 Rebuild。 sql-server backup 2 个回答 Voted Best Answer Remus Rusanu 2016-01-22T08:30:35+08:002016-01-22T08:30:35+08:00 在完整数据库备份期间运行索引碎片整理有哪些性能缺陷? 任何数据库操作都会产生额外的日志,全量备份需要抓取这些日志(全量备份至少包含备份过程中denerated的所有日志)。但是,碎片整理是相当小的日志开销。我不会担心的。 有没有办法在备份开始时暂停/停止索引碎片整理? 不,但 Defrag 完全可以停止并稍后恢复。如果你中断碎片整理,你不会失去目前的工作。稍后重新启动碎片整理将从中断的地方继续。 当碎片在 10 到 30% 之间时,我使用 Reorganize, 也就是说,很可能是无用的。碎片整理在很大程度上是一个神话。不再担心 SQL Server 碎片 HansLindgren 2016-01-22T06:56:09+08:002016-01-22T06:56:09+08:00 无法暂停正在运行的索引碎片整理。话虽如此,您始终可以在碎片整理之间暂停,因为您可能有多个对象要进行碎片整理。 但是,如果您使用向导来处理碎片整理,那您就很不走运了。 我总是发现使用专用脚本(如 Ola Hallengren 的脚本)进行碎片整理更好。维护向导似乎从来没有以好的方式完成它。拥有专用脚本可以让您轻松地根据不同的标准插入“暂停”逻辑。
任何数据库操作都会产生额外的日志,全量备份需要抓取这些日志(全量备份至少包含备份过程中denerated的所有日志)。但是,碎片整理是相当小的日志开销。我不会担心的。
不,但 Defrag 完全可以停止并稍后恢复。如果你中断碎片整理,你不会失去目前的工作。稍后重新启动碎片整理将从中断的地方继续。
也就是说,很可能是无用的。碎片整理在很大程度上是一个神话。不再担心 SQL Server 碎片
无法暂停正在运行的索引碎片整理。话虽如此,您始终可以在碎片整理之间暂停,因为您可能有多个对象要进行碎片整理。
但是,如果您使用向导来处理碎片整理,那您就很不走运了。
我总是发现使用专用脚本(如 Ola Hallengren 的脚本)进行碎片整理更好。维护向导似乎从来没有以好的方式完成它。拥有专用脚本可以让您轻松地根据不同的标准插入“暂停”逻辑。