none
【SQL】关于重建索引的疑问? RRS feed

  • 问题

  • 以下问题比较困扰我,求解答:

    1、REBUILD有些表的索引后,碎片为什么没有任何减少。网上有说法是因为表小(我遇过的几例的确是),重不重建毫无意义,真是这个原因吗?

    2、据说重建聚集索引后,非聚集索引也会跟着重建,但事实证明不是啊,请看:

    这表就这仨索引,最底下的是聚集,我把它重建后,上面两个非聚集毫无动静,这是什么情况?
    2013年2月25日 8:07

答案

  • 1,没错,小的index可能存在于混合区中,所以你重建那个索引可能不会改变它的碎片。

    2,除了SQL2000的non-unique clustered index 外,其他的clustered index 的重新不会引起非聚集索引跟着重建。



    Please click the Mark as Answer button if a post solves your problem!

    • 已标记为答案 ahdung_AI 2013年2月26日 0:51
    2013年2月25日 9:06
  • I'll start with clustered index because non-clustered index contains clustered keys.
    • 已标记为答案 ahdung_AI 2013年2月26日 0:52
    2013年2月25日 14:05

全部回复

  • 1,没错,小的index可能存在于混合区中,所以你重建那个索引可能不会改变它的碎片。

    2,除了SQL2000的non-unique clustered index 外,其他的clustered index 的重新不会引起非聚集索引跟着重建。



    Please click the Mark as Answer button if a post solves your problem!

    • 已标记为答案 ahdung_AI 2013年2月26日 0:51
    2013年2月25日 9:06
  • 就是说,基本上第2点已经成为历史了是吧。

    另请教,同一张表的索引重建顺序有没有讲究?聚集先还是非聚集先?

    2013年2月25日 9:34
  • 既然它们之间互不影响,我不觉得顺序有什么关系。



    Please click the Mark as Answer button if a post solves your problem!

    2013年2月25日 11:20
  • I'll start with clustered index because non-clustered index contains clustered keys.
    • 已标记为答案 ahdung_AI 2013年2月26日 0:52
    2013年2月25日 14:05
  • tks, 我也是这么想的。谢谢各位帮助!
    2013年2月26日 0:51
  • 假如是你第一次建 clustered index  跟 非non-clustered index ,是的,应该先建 clustered index  ,否则non-clustered index 会重建。

    但是你问的是重建的顺序,这方面来说,顺序是没有关系的。



    Please click the Mark as Answer button if a post solves your problem!

    2013年2月26日 3:31
  • 谢谢Jackie,再请问主键列被UPDATE后会造成什么后果,索引会自动更新吗,如果不会,重建能否更新它

    2013年2月27日 6:06
  • 谢谢Jackie,再请问主键列被UPDATE后会造成什么后果,索引会自动更新吗,如果不会,重建能否更新它

    当然会自动更新。


    Please click the Mark as Answer button if a post solves your problem!

    2013年2月27日 13:36
  • Should update stats if make lot of data changes, otherwise optimizer may pick wrong plans.
    2013年2月27日 14:21