SQL Server数据库镜像下有效的索引维护
admin
2023-05-27 07:01:21
0

SQL Server数据库镜像下有效的索引维护

 

我们在做索引重建的时候,由于索引重建产生太多日志,习惯切换到大容量日志恢复模式。而在生产环境,我们配置了数据库镜像作为高可用,镜像只能运行于完整恢复模式,难道我们就不做索引维护了么?

 

当生产环境使用镜像的时候,这是一个很常见的问题。当使用镜像前,尽管很多人会做负载性能测试,以我的经验,在他们的测试中不会包含维护操作。常规的维护操作是业务环节的一部分,因此,我们应该将其包含在所有的测试场景中。

 

我们先来了解下原理,使用大容量日志恢复模式允许索引重建(使用ALTER INDEX ... REBUILD)操作产生更少的事务日志,也就是说,事务日志不会像在完整恢复模式下执行的操作那么大。而数据库镜像只允许使用完整恢复模式,因此索引重建会记录完整日志。产生的大量的额外的日志很容易导致主和镜像之间的网络问题,在主上会会导致非常大的SEND队列。如果SEND队列变得非常大,当主宕机时,会有潜在的数据丢失的隐患,甚至超出可以容忍的数据丢失服务级别协议。

 

那么我们该怎么做呢?

 

我们可以错开时间使用ALTER INDEX ... REORGANIZE做索引维护。重新组织索引只是处理存在的碎片,它是可以中断的,而不会丢失已经完成的工作。重建索引,不论碎片有多少,总是会建立一个新索引,如果你中断了,整个重建过程将回滚。

 

对于很大的索引,去重建是不实际的,应该执行以下步骤:   

  • 第1天:在维护窗口,开始ALTER INDEX ... REORGANIZE。让它运行1个小时,然后KILL掉。它不会回滚索引维护的操作,刚才的索引重新组织将会移除一些碎片。    

  • 第2天:再次开始重新组织索引。它不会记住第1天工作到哪了,它会快速穿过第1天的工作,开始移除索引的下一个部分的碎片。在1小时后KILL掉。    

  • 重复以上动作直到碎片级别降到合适的阈值,或者只是继续无限期的每天处理。

 

该方法允许你限制通过常规的索引维护产生的事务日志的数量。如果你想更深入的优化,不用再一定时间后杀掉重新组织的进程,你可以监控事务日志产生的数量,然后到达一定阈值后再杀掉。具体,可以参考:Script: open transactions with text and plans(http://www.sqlskills.com/blogs/paul/script-open-transactions-with-text-and-plans/)



相关内容

热门资讯

中构建筑取得钢结构厂房用可伸缩... 国家知识产权局信息显示,中构建筑有限公司取得一项名为“一种钢结构厂房用可伸缩式抗风支撑杆”的专利,授...
西安光机所破解传统光纤在中长波... 中新网西安5月20日电 (记者 阿琳娜)记者20日从西安光机所获悉,该所郭海涛研究员团队成功研制出国...
北约秘书长“和稀泥”:美国在欧... 【文/观察者网 张菁娟】美国五角大楼日前“取消4000名美军驻波部署”的消息触动了波兰的神经,波兰官...
联想面向广大开发者与用户提供1... 5月19日晚,联想集团执行副总裁兼中国区总裁刘军开启天禧AI Skills(技能集)共创“苍穹计划”...
从“卡脖子”到“掰手腕”:中俄... 人民网记者 张齐 第十届中俄博览会上,人流穿梭。有的展台前载歌载舞,有的展台前分发美食,在几家黑龙江...
原创 一... 本文来源于海潮天下(Marine Biodiversity) 欢迎微信搜索“海潮天下”,关注全球环...
太阳“发脾气”地球会怎样?中欧... “微笑”卫星 据中国科学院消息,中欧联合研制的太阳风-磁层相互作用全景成像卫星(英文缩写SMILE,...
原创 野... 本文来源于海潮天下(Marine Biodiversity) 欢迎微信搜索“海潮天下”,关注全球环...
腾讯亮相2026中国网络文明大... 5月19日至20日,以“文明网络空间 昂扬奋进力量”为主题的2026年中国网络文明大会在广西南宁举行...
胡锡进:中俄罕见同时发两份联合... 中国与俄罗斯周三晚间同时发布两项联合声明,这非常罕见,举世瞩目。在第一项联合声明中,中俄两国宣示进一...