调度索引重建作业

tes*_*747 2 sql-server availability-groups sql-server-2014 index-maintenance

我有一个 MS-SQL 2014 SP1 - 两个节点 AlwaysOn AG(一个主节点和一个只读辅助节点)有大约 10 个数据库,总大小为 20-30GB。我有一些关于调度索引重建和统计信息收集的问题。

我计划通过维护计划每周安排一次。通常在主节点上根本没有负载的周日晚上。

我应该在主要还是在副本中运行作业?如果我只在辅助上运行它,那么我会得到什么好处?或相反亦然?(意思是我应该在两个节点上运行)

如果我通过维护计划使用 SP1 和索引重建,是否可能发生损坏? 正如这里提到的

Kin*_*hah 10

您应该使用智能索引维护脚本而不是维护任务

我应该在主要还是在副本中运行作业?

是的,因为它们被复制到辅助副本上。

如果我只在辅助上运行它,那么我会得到什么好处?

您不能在辅助副本上运行。

索引维护会生成大量影响 RTO 和 RPO 的事务日志活动。此外,它增加了辅助副本上的重做积压。

您应该遵循AlwaysOn 可用性组的索引维护建议

  • 找一个安静的时间或在计划的维护时间运行您的索引维护。
  • 如果可能,请从同步模式切换到异步模式。完成索引维护后,将其切换回原来的状态。
  • 进行频繁的日志备份,以便日志文件不会失去控制。
  • 既然你的SQL Server 2014,你应该使用WAIT_AT_LOW_PRIORITYMAX_DURATION以及ABORT_AFTER_WAIT
  • 如果您使用在线索引重建,则使用 MAXDOP = 1

另请注意,分区表可能会限制 Create/Alter Index 的 Runtime MAX DOP

如果我通过维护计划使用 SP1 和索引重建,是否可能发生损坏?

由于您使用的是 SP1 ( 12.0.2370 or greater) ,您应该没问题。