创建带包含列的索引 sqlserver

2021/6/8 19:36:24

本文主要是介绍创建带包含列的索引 sqlserver,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在 SQL Server 2005 中,可以通过将非键列添加到非聚集索引的叶级别来扩展非聚集索引的功能。通过包含非键列,可以创建覆盖更多查询的非聚集索引。这是因为非键列具有下列优点:

它们可以是不允许作为索引键列的数据类型。
在计算索引键列数或索引键大小时,数据库引擎 不考虑它们。
当查询中的所有列都作为键列或非键列包含在索引中时,带有包含性非键列的索引可以显著提高查询性能。这样可以实现性能提升,因为查询优化器可以在索引中找到所有列值;不访问表或聚集索引数据,从而减少磁盘 I/O 操作。

注意:
当索引包含查询引用的所有列时,它通常称为“覆盖查询”。

键列存储在索引的所有级别中,而非键列仅存储在叶级别中。有关索引级别的详细信息,请参阅表组织和索引组织。

使用包含性列以避免大小限制
可以将非键列包含在非聚集索引中,以避免超过当前索引大小的限制(最大键列数为 16,最大索引键大小为 900 字节)。数据库引擎 计算索引键列数或索引键大小时,不考虑非键列。

CREATE INDEX IX_Address_PostalCode  
ON Person.Address (PostalCode)  
INCLUDE (AddressLine1, AddressLine2, City, StateProvinceID);  

参考文章
https://blog.csdn.net/wangjunhe/article/details/7228226



这篇关于创建带包含列的索引 sqlserver的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程