Jak*_*ski 2 sql-server indexing sql-server-2008
我试着用谷歌搜索几个小时,但我仍然不清楚。
有什么区别:
Create Index NonClusteredComposit_IDX ON Table(id,quantity,price)
Create Index NonClusteredCompositAndInclude_IDX ON Table(id) Include (price,quantity).
Run Code Online (Sandbox Code Playgroud)
仅适用于索引等级。
我了解它们如何工作,甚至何时使用它们。
但我无法理解的是,数据如何存储在 NonClusteredCompositAndInclude_IDX 中?
此架构上会发生什么变化,其中:索引页包含索引数据(id、数量、价格)和指向 RID 的指针(当表是堆时)或指向 B 树中页面的指针(对于 B 树/聚集表) 。
从文档中,我知道当我包含列时,数据将存储在叶节点中,但如果我们谈论索引内部的体系结构,我看不到这与普通索引 On(1,2,3) 之间有任何区别。
谁能告诉我索引架构的差异?谢谢!
在第一种方法中,将根据这三个属性进行排序 - id、数量、价格
在第二种方法中,排序将仅在“id”上进行,但“id”包含“数量,价格”的值,因此不需要进行键查找或删除查找来获取相应的属性。
为了说明这一点,如果您在其中一个表中创建以下索引,两种方法都会进行索引查找,但如果您检查读取的行数,则会有所不同,因为一种方法是从排序的数据中获取,而第二种方法会对选定的“id”进行全面扫描
检查第一个索引的读取数...
在检查第二个索引的读取次数时,它证明它对所查找数据的索引进行了完整扫描,因此您获得了 188 条记录
| 归档时间: |
|
| 查看次数: |
1164 次 |
| 最近记录: |