严重碎片化的索引 - SQL Server 2005

时间:2010-07-15 15:42:26

标签: sql sql-server-2005 fragmentation

我最近继承了一个维护不善的生产数据库,其中包含严重分散的索引(大多数索引碎片超过80%)。我要求我的经理停机以执行索引重建,但不幸的是,目前不允许停机。如果在线索引重组也不是选项,我可以执行以下操作吗?

  1. 将新的生产副本还原到测试实例
  2. 重建索引,更新统计信息
  3. 从测试实例
  4. 覆盖prod数据库
  5. 应用事务日志以获取数据库。
  6. 虽然上述方法也需要停机时间,但其相对较少。我想知道是否可以做到这一点或者我只是愚蠢:)请建议

    RK

2 个答案:

答案 0 :(得分:2)

SQL Server 2005有online index rebuilds(即非阻塞)。

否则,它永远不会脱机(即数据库或服务器脱机),但对正在重建的表/索引具有独占锁定。

答案 1 :(得分:1)

如果应用程序的大多数访问都是通过搜索,那么碎片不是问题。否则,我会尝试找到索引重建效果最小的时间,并通过预定作业完成。当然,该应用程序没有24/7/365运行,维护不良,没有公司预计会出现一些问题。 (他们改变汽车上的油吗?)

就您的4步解决方案而言,将表复制到另一个数据库,重建索引并将其复制回来将不仅仅是重建现有索引。在复制它时,无论如何都要重建索引,所以只需尝试一次安排几个表,直到你完成所有工作。

祝你好运。