SQL Server 2014 大牛们,线上环境重建碎片较多的索引会不会影响业务。有没有实践过的解答下,

SQL Server 2014

    线上环境重建碎片较多的索引会不会影响业务。有没有实践过的解答下,需要注意什么?会面临哪些问题呢
    最近在优化数据库的时候打算重建碎片较多的索引,会不会在此过程中严重影响业务呢?

    还有在优化数据库这块,各位前辈有没有什么好的建议分析下吗?小弟万分感谢。

https://www.bbsmax.com/A/D854n8MvzE/

在线重建索引,通常都会由于枷锁导致正常业务的阻塞。
对于碎片的解决办法 (引用自:宋沄剑 SQL Server索引中的碎片和填充因子)
基本上所有解决办法都是基于对索引的重建和整理,只是方式不同
1.删除索引并重建
这种方式并不好.在删除索引期间,索引不可用.会导致阻塞发生。而对于删除聚集索引,则会导致对应的非聚集索引重建两次(删除时重建,建立时再重建).虽然这种方法并不好,但是对于索引的整理最为有效
2.使用DROP_EXISTING语句重建索引
为了避免重建两次索引,使用DROP_EXISTING语句重建索引,因为这个语句是原子性的,不会导致非聚集索引重建两次,但同样的,这种方式也会造成阻塞
3.如前面文章所示,使用ALTER INDEX REBUILD语句重建索引
使用这个语句同样也是重建索引,但是通过动态重建索引而不需要卸载并重建索引.是优于前两种方法的,但依旧会造成阻塞。可以通过ONLINE关键字减少锁,但会造成重建时间加长.
4.使用ALTER INDEX REORGANIZE
这种方式不会重建索引,也不会生成新的页,仅仅是整理,当遇到加锁的页时跳过,所以不会造成阻塞。但同时,整理效果会差于前三种.