问:Cluster Index和Noncluster Index的区别,主要是使用上的区别

解决方案 »

  1.   

    Cluster Index和Noncluster Index的结构都是平衡树。它们的主要区别是Cluster Index的叶子节点是DATA PAGE而Noncluster Index的叶子节点是数据在DATA PAGE中的指针
      

  2.   

    Cluster Index使表记录按物理地址排序,唯一(一般被主键占用)
    Noncluster Index使表记录按逻辑地址排序,多个
      

  3.   

    Cluster Index 在表中只能有一个,而Noncluster Index在表中可以有多个,
    通常下面情况可以考虑设置为Cluster Index :
    1含数量有限的唯一值的列. 
    2用下列运算符返回一个范围值的查询:BETWEEN、>、>=、< 和 <=。 
    3回大结果集的查询。
      

  4.   

    可考虑将聚集索引用于: 包含大量非重复值的列。
    使用下列运算符返回一个范围值的查询:BETWEEN、>、>=、< 和 <=。
    被连续访问的列。
    返回大型结果集的查询。
    经常被使用联接或 GROUP BY 子句的查询访问的列;一般来说,这些是外键列。对 ORDER BY 或 GROUP BY 子句中指定的列进行索引,可以使 SQL Server 不必对数据进行排序,因为这些行已经排序。这样可以提高查询性能。
    OLTP 类型的应用程序,这些程序要求进行非常快速的单行查找(一般通过主键)。应在主键上创建聚集索引。 
    聚集索引不适用于: 频繁更改的列 
    这将导致整行移动(因为 SQL Server 必须按物理顺序保留行中的数据值)。这一点要特别注意,因为在大数据量事务处理系统中数据是易失的。宽键 
    来自聚集索引的键值由所有非聚集索引作为查找键使用,因此存储在每个非聚集索引的叶条目内。