我有一个 MS-SQL 2014 SP1 - 两个节点 AlwaysOn AG(一个主节点和一个只读辅助节点),总共有大约 10 个数据库,大小为 20-30GB。我有一些关于计划索引重建和统计数据收集的查询。
我计划通过维护计划每周安排一次。通常在周日晚上,主节点上根本没有负载。
我应该在主要还是在副本中运行该作业?如果我只在二级上运行它,那么我能得到什么好处?或相反亦然?(意思是我应该在两个节点上运行)
如果我使用 SP1 并通过维护计划重建索引,是否可能发生损坏? 正如这里提到的
我有一个 MS-SQL 2014 SP1 - 两个节点 AlwaysOn AG(一个主节点和一个只读辅助节点),总共有大约 10 个数据库,大小为 20-30GB。我有一些关于计划索引重建和统计数据收集的查询。
我计划通过维护计划每周安排一次。通常在周日晚上,主节点上根本没有负载。
我应该在主要还是在副本中运行该作业?如果我只在二级上运行它,那么我能得到什么好处?或相反亦然?(意思是我应该在两个节点上运行)
如果我使用 SP1 并通过维护计划重建索引,是否可能发生损坏? 正如这里提到的
您应该使用智能索引维护脚本而不是维护任务。
是的,因为它们在辅助副本上被复制。
您不能在辅助副本上运行。
索引维护会产生大量影响 RTO 和 RPO 的事务日志活动。此外,它增加了辅助副本上的重做积压。
您应该遵循使用 AlwaysOn 可用性组的索引维护建议:
WAIT_AT_LOW_PRIORITY
、MAX_DURATION
和ABORT_AFTER_WAIT
另外,请注意分区表可能会限制创建/更改索引的运行时 MAX DOP
既然你在 SP1 (
12.0.2370 or greater
) 上,你应该没问题。我认为还有另一种重建碎片索引的方法,您可以创建一个 sp 并通过 SQL Server 代理或任务调度程序对其进行调度。以下查询重建或仅重组必要的索引而不是所有索引重建,作为一般建议,索引需要重建碎片百分比超过 30% 并重组碎片百分比在 10% 到 30% 之间的索引
了解更多详情点击野兔
以下脚本一一重建索引,因此不会对生产数据库进行扩展操作。