0
|
Gennady Vanin Ðеннадий Ðанин Mikael Svenson · 技术社区 · 14 年前 |
![]() |
1
1
这是很多问题。是的,IAM用于查找堆中的页面。不同之处在于,没有索引就无法知道要为任何给定的数据片段检索哪些页面。数据的SQL/关系模型的一个重要特性是,查询只通过数据值访问数据,而不是直接使用指针或其他结构。 槽号只是标识页面中的一行。即使在聚集索引中,行数据也不会在页面中按逻辑顺序排列。每个数据页都包含一个指向页中行位置的行偏移表。 由于需要额外的书签查找,聚集索引可能会降低非聚集索引的数据访问速度。这可以通过使用INCLUDE子句向NC索引添加列来减轻。有时,在表上没有聚集索引可能更有效。 |
![]() |
2
1
请在下面读我的答案 ,首先。 如果有IAM,则有索引。 但是,如果不是CI,那么这些行就在一个堆中,如果您想直接读取它(不使用NCI,或者在不存在索引的情况下),则只能对堆进行表扫描。 聚集索引总比没有聚集索引好。对于异常或低于标准的情况,有一个例外和一个警告:
CIs允许范围查询;NCIs不允许。但这并不是唯一的原因。 另一个警告是,您需要保持CI密钥的宽度较小,因为它是在NCIs中携带的。现在,这通常不是问题,因为在,宽CI键是好的。但是如果你有一个伪装成数据库的非标准化的电子表格,这会产生比标准化数据库更多的索引,那就需要考虑了。因此,帝国奉献者的长期建议是,降低CI键的宽度。CIs不“增加”NCIs,这是不准确的陈述。如果您有NCIs,那么它将有一个指针或一个CI键;如果您有一个CI(具有所有优点),那么成本是,一个CI键而不是RowId,可以忽略不计。所以准确的说法是,宽大的CI键增加了NCIs。 谁说不能并行顺序访问CIs是错误的(MS可能在一个版本中中断它,在下一个版本中修复它,但这是暂时的)。 使用ANSI SQL…主键。。。符号默认为唯一聚集。因为数据库应该是关系数据库。唯一的PK应该是一个友好的关系键,而不是一个愚蠢的标识列。因此,主键总是(不包括异常)集群的最佳候选项。
你不可能回答最后一个问题,你得一直问下去,直到用完为止。但是,请忘记你参考的文档,重新开始,否则我们将在这里讨论清楚的知识和gobbledegook之间的区别。 |
![]() |
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
![]() |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
![]() |
Prince · 复制大型文件需要更多时间 2 年前 |
![]() |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
![]() |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |