Ola 的维护解决方案不处理 sysjob* 表

Mco*_*col 2 sql-server maintenance system-tables ola-hallengren index-maintenance

我使用了Ola Hallengren 的脚本来备份和维护数据库。

但是,它不会对 中的某些表执行任何重新索引或重组操作msdb,例如sysjobhistory,即使它们的碎片超过定义的阈值。这是我正在使用的脚本:

EXECUTE dbo.IndexOptimize
  @Databases = 'SYSTEM_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'
Run Code Online (Sandbox Code Playgroud)

Aar*_*and 7

您需要一个额外的参数来告诉 Ola 的脚本考虑 Microsoft 提供的对象,因为这些与作业相关的表msdb被标记为is_ms_shipped

@MSShippedObjects = N'Y'
Run Code Online (Sandbox Code Playgroud)

(此参数默认为 N'N',这意味着忽略Microsoft 提供的对象,并在此处记录。)