none
查看索引的使用情况,其中未使用的索引中总是会存在一些PK。如果将PK的设置成noncluster的index 是否就会变好? RRS feed

  • 问题

  • 这样描述吧。

    新到这家公司,发现数据库中索引情况很混乱。比如有三个栏位上建立了PK,当然默认也就有了clustered index在这三个栏位上。但是他们又在这三个栏位上创建了nonclustered index。

    使用动态性能视图dm_db_index_usage_stats检查索引的使用情况。发现PK的这个索引未被使用。

    是否我将PK的索引设置成nonclustered就会好点?

     


     

    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.



    2011年6月3日 0:40

答案

  • 建议你还是测试一下

    我的想法是你跟踪下这个表上的SQL,强制SQL走这个表的PK和另一索引,看看是否有区别。

    没有区别就把另一个删除掉,如果另一个的性能好,就保留咯。

    2011年6月3日 2:02

全部回复

  • 建议你还是测试一下

    我的想法是你跟踪下这个表上的SQL,强制SQL走这个表的PK和另一索引,看看是否有区别。

    没有区别就把另一个删除掉,如果另一个的性能好,就保留咯。

    2011年6月3日 2:02
  • cluster index是没有办法变成non cluster的,除非你删除后重建。

    另外,因为你的聚集索引是伴随着主键创建的,在不删除主键约束之前是没有办法删除聚集索引的


    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    • 已建议为答案 Ai-hua Qiu 2011年6月7日 8:12
    2011年6月4日 12:35
    版主
  • 这样描述吧。

    新到这家公司,发现数据库中索引情况很混乱。比如有三个栏位上建立了PK,当然默认也就有了clustered index在这三个栏位上。但是他们又在这三个栏位上创建了nonclustered index。

    使用动态性能视图dm_db_index_usage_stats检查索引的使用情况。发现PK的这个索引未被使用。

    是否我将PK的索引设置成nonclustered就会好点?

     


     

    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.




    Couple of things to consider:

    1. sql stores data physically in order of clustered index, change clustered index will change data order and may cause too many page split.

    2. sql can't defrag table without clustered index

    2011年6月6日 16:33