在MS SQL Server中创建索引时,INCLUDE()函数的作用是什么?
使用在MS SQL Server中创建索引时,INCLUDE()函数的作用是什么?,sql,sql-server,indexing,clustered-index,Sql,Sql Server,Indexing,Clustered Index,使用INCLUDE函数创建索引与不创建索引有什么区别 以下两个指数之间有什么区别 CREATE NONCLUSTERED INDEX SomeName ON SomeTable ( ColumnA ,ColumnB ,ColumnC ,ColumnD ) INCLUDE ( ColumnE ,ColumnF ,ColumnG ) vs 当执行计划使用索引时,它可以访问索引中的所有列。如果给定表中的所有列都在索引中,则无需引
INCLUDE
函数创建索引与不创建索引有什么区别
以下两个指数之间有什么区别
CREATE NONCLUSTERED INDEX SomeName ON SomeTable (
ColumnA
,ColumnB
,ColumnC
,ColumnD
) INCLUDE (
ColumnE
,ColumnF
,ColumnG
)
vs
当执行计划使用索引时,它可以访问索引中的所有列。如果给定表中的所有列都在索引中,则无需引用原始数据页。消除数据页查找可以提高效率 但是,在索引中包含列会增加索引结构本身的开销(除了复制值之外)
INCLUDE
关键字允许在索引中包含列值,而不会产生额外索引结构的开销。其目的是解决查询,而不必在原始数据页上查找列信息。当执行计划使用索引时,它可以访问索引中的所有列。如果给定表中的所有列都在索引中,则无需引用原始数据页。消除数据页查找可以提高效率
但是,在索引中包含列会增加索引结构本身的开销(除了复制值之外)
INCLUDE
关键字允许在索引中包含列值,而不会产生额外索引结构的开销。其目的是解决查询,而不必在原始数据页上查找列信息。INCLUDE子句将数据添加到最低/叶级,而不是索引树中。这使得索引更小,因为它不是树的一部分
INCLUDE
列不是索引中的关键列,因此不按顺序排列。这意味着它对谓词、排序等并没有真正的用处。。但是,如果在键列的几行中有剩余的查找,则它可能很有用
INCLUDE
列不是索引中的关键列,因此不按顺序排列。这使得它们通常不适用于联接或排序。因为它们不是键列,所以它们不像键列那样位于整个B树结构中
通过添加Include(或nonkey)列,可以创建覆盖更多查询的非聚集索引。这是因为非键列具有以下优点:
- 它们可以是不允许作为索引键列的数据类型
- 在计算索引键列数或索引键大小时,数据库引擎不考虑它们
有关更多信息,请参阅Microsoft文档:INCLUDE子句将数据添加到最低/leaf级别,而不是索引树中。这使得索引更小,因为它不是树的一部分
INCLUDE
列不是索引中的关键列,因此不按顺序排列。这意味着它对谓词、排序等并没有真正的用处。。但是,如果在键列的几行中有剩余的查找,则它可能很有用
INCLUDE
列不是索引中的关键列,因此不按顺序排列。这使得它们通常不适用于联接或排序。因为它们不是键列,所以它们不像键列那样位于整个B树结构中
通过添加Include(或nonkey)列,可以创建覆盖更多查询的非聚集索引。这是因为非键列具有以下优点:
- 它们可以是不允许作为索引键列的数据类型
- 在计算索引键列数或索引键大小时,数据库引擎不考虑它们
CREATE INDEX SomeName ON SomeTable (
ColumnA
,ColumnB
,ColumnC
,ColumnD
,ColumnE
,ColumnF
,ColumnG
)