none
非键列理解! RRS feed

  • 问题

  • 我在看书的时候我是这样理解非键列的,在创建索引时使用INCLUDE 包含进去的列和在表中未创建任何索引的列或从未包含在索引中的列。希望大家帮我指正一下或者提出你们自己的理解。
    • 已移动 Sheng Jiang 蒋晟 2009年11月23日 19:10 非System.Data问题 (发件人:ADO.NET 与 LINQ)
    2009年11月23日 7:06

答案

  • including字句所包含的列只会出现在索引的叶节点, 但中间节点只包含索引键值,这样就节省了一部分的存储空间.
    假设你有如下查询/索引.
    create index index1 on table1(id,name,sex)
    select id,name,sex from table1 where id<10
    对于这个查询来说, sqlserver会按照id进行搜索,不会使用到name和sex. 
    index1就浪费了一部分空间,可使用including将name和sex包含进去
    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    2009年11月24日 3:09
    版主

全部回复

  • Column that is not in any index (included column is not index key).
    2009年11月24日 2:19
  • including字句所包含的列只会出现在索引的叶节点, 但中间节点只包含索引键值,这样就节省了一部分的存储空间.
    假设你有如下查询/索引.
    create index index1 on table1(id,name,sex)
    select id,name,sex from table1 where id<10
    对于这个查询来说, sqlserver会按照id进行搜索,不会使用到name和sex. 
    index1就浪费了一部分空间,可使用including将name和sex包含进去
    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    2009年11月24日 3:09
    版主