0

我想问一下使用该字段SalesOrderId作为主键一部分的实际原因。我认为这应该只是表的外键SalesOrderHeader

提前致谢

4

1 回答 1

0

好的,关于索引有多种类型。有一个聚集索引确定数据在磁盘上的物理顺序,没有它,该表在技术上称为堆。访问大量数据是低效的。数据是随机的。任何非聚集索引(以及有关数据分布的统计信息)都将引用聚集索引来访问数据。建立索引时,查询优化器将使用左侧的索引列来查找数据。因此,当我在 col1 上加入、搜索或其他任何内容时,如果存在索引 col1、col2、col3,则将使用该索引。如果我在 col1,col2 上过滤,将使用相同的索引。对此几乎没有或没有惩罚。如果我的查询引用 col1、col2、col3 ONLY(包括 where 和返回的列等)仅通过读取索引即可确定要返回的信息,不需要访问其自身的表。这被称为覆盖指数。所以这非常快。一般来说,表应该很窄,索引应该很宽。要了解更多我推荐http://www.insidesqlserver.com/thebooks.html Kalen Delany:她亲自了解 SQL 开发团队,并且写得非常清楚。从 SQL7 到 SQL2012,基本原则仍然适用——尽管添加了空间索引、空间数据类型、BI 和许多其他好东西。

于 2012-08-15T16:53:35.750 回答