IndexOptimize之后查询和更新非常慢
数据库SQL Server 2017 Enterprise CU16 14.0.3076.1 最近,我们尝试从默认的“索引重建”维护作业切换到Ola Hallengren IndexOptimize。默认的索引重建作业已经运行了几个月,没有任何问题,并且查询和更新在可接受的执行时间内正常工作。在IndexOptimize数据库上运行后: EXECUTE dbo.IndexOptimize @Databases = 'USER_DATABASES', @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' 性能极度下降。使用100ms之前的一条更新语句IndexOptimize之后(使用相同的计划)花费了78.000ms,并且查询的执行情况也差了几个数量级。 由于这仍然是一个测试数据库(我们正在从Oracle迁移生产系统),因此我们恢复为备份并禁用IndexOptimize,一切恢复正常。 但是,我们想了解与可能导致这种极端性能下降IndexOptimize的“正常” Index Rebuild行为有何不同,以确保一旦投入生产就可以避免这种情况。关于寻找什么的任何建议将不胜感激。 update语句执行速度慢时的执行计划。即 在IndexOptimize 实际执行计划之后(尽快推出) 我还没发现差异。 快速计划相同的查询 实际执行计划