我最近继承了一个维护不善的生产数据库,其中包含严重分散的索引(大多数索引碎片超过80%)。我要求我的经理停机以执行索引重建,但不幸的是,目前不允许停机。如果在线索引重组也不是选项,我可以执行以下操作吗?
虽然上述方法也需要停机时间,但其相对较少。我想知道是否可以做到这一点或者我只是愚蠢:)请建议
RK
答案 0 :(得分:2)
SQL Server 2005有online index rebuilds(即非阻塞)。
否则,它永远不会脱机(即数据库或服务器脱机),但对正在重建的表/索引具有独占锁定。
答案 1 :(得分:1)
如果应用程序的大多数访问都是通过搜索,那么碎片不是问题。否则,我会尝试找到索引重建效果最小的时间,并通过预定作业完成。当然,该应用程序没有24/7/365运行,维护不良,没有公司预计会出现一些问题。 (他们改变汽车上的油吗?)
就您的4步解决方案而言,将表复制到另一个数据库,重建索引并将其复制回来将不仅仅是重建现有索引。在复制它时,无论如何都要重建索引,所以只需尝试一次安排几个表,直到你完成所有工作。
祝你好运。