小编joh*_*hna的帖子

如何配置 Ola Hallengren IndexOptimize 脚本以针对表的子集运行

我正在将 Ola Hallengren IndexOptimize 脚本用于大小为 7 TB、表超过 300,000 的 SQL 2016 数据库。我每晚只有 6 小时的时间来管理索引。我正在使用 timelimit 参数在 6 小时后停止作业。

问题是,每天晚上索引作业都按字母顺序从索引的开头开始,并且只能通过大约相同的 4,000 个表。

我该怎么做才能让索引作业覆盖数据库中的所有索引?也许通过创建多个作业,一周中的每个晚上做一个索引子集?或者有没有办法让工作在之前停止的第二天重新开始?

所有的表都在同一个数据库模式中。这是供应商提供的数据库,我无法更改数据库架构。

在此先感谢您的任何指导。

我目前的工作步骤如下:

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 = 10, 
@FragmentationLevel2 = 40,
@UpdateStatistics = 'ALL', 
@OnlyModifiedStatistics = 'Y', 
@PartitionLevel = 'N', 
@MaxDOP = 0,
@SortInTempdb = 'Y',
@TimeLimit = 21600,
@LogToTable = 'Y'
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2016 ola-hallengren

6
推荐指数
1
解决办法
1618
查看次数