我在SQLServer2012EnterpriseEdition上有维护工作,它每天运行以检查索引碎片,并根据碎片百分比重新组织或重建索引。我使用这种方法来提高性能,而且它很长一段时间工作得很完美。然而,最近这种方法开始花费太多的时间。
因此,我不使用上面的内容,而是执行索引重建。它以第一种方法所需时间的一-六时间完成。
为什么第一种方法会随着时间的推移变得缓慢,以及为什么完整的指数重建会变得更好?
EXECUTE dbo.IndexOptimize @Databases = 'MyDBname'
, @FragmentationLow = NULL
, @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE'
, @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE'
, @FragmentationLevel1 = 5
, @FragmentationLevel2 = 30
, @UpdateStatistics = 'ALL'
, @OnlyModifiedStatistics = 'Y'发布于 2016-05-25 14:17:33
您没有说明在每一种情况下所采取的步骤,因此很难给出具体的分析,而是对其中一些差异进行三种一般性解释:
https://www.brentozar.com/archive/2013/09/index-maintenance-sql-server-rebuild-reorganize/还有一些其他的注意事项,您可能会发现它们在更多地理解差异方面很有用。
要想得到更具体的答案,您需要更新您的问题,并提供您正在比较的维护计划的更多细节。
https://dba.stackexchange.com/questions/139493
复制相似问题