SqlServer2008实例30索引选项之使用索引INCLUDE

   覆盖查询(coverng query)是指其引用的所有列均能在非聚集索引中找到的查询。这个方案经常会带来出众的查询性能,因为SQL Server不需要从聚集索引或堆中检索实际的数据——它只需要读取在非聚集索引中存储的数据。但是它的缺点是最多只能包含16列或900字节的索引键。
    这个问题的一个解决方案是新引入的关键字INCLUDE,它允许添加最多1023个非键列到非聚集索引,通过创建覆盖索引帮助提升查询性能。这些非键列没有存储在索引的所有级别上,而只是存在于非聚集索引的叶级别上。
    使用INCLUDE的CREATE NONCLUSTERED INDEX的语法如下:
    CREATE NONCLUSTERED INDEX index_name
    ON table_or_ view_name(column [ASC l DESC] [,…n ])
   INCLUDE(column [,…n])
   第一个列列表是键索引列,在INCLUDE之后的列列表是非键列。在这个示例中,将新的大型对象数据类型列添加到TerminationReason表中。删除并重建在DepartmentID上的既有索引,这次添加新的非键值到索引中:

USE AdventureWorks
GO

ALTER TABLE HumanResources.TerminationReason
ADD LegalDescription varchar(max)

DROP INDEX
HumanResources.TerminationReason.NI_TerminationReason_TerminationReason_DepartmentID

CREATE NONCLUSTERED INDEX NI_TerminationReason_TerminationReason_DepartmentID
ON HumanResources.TerminationReason (TerminationReason,DepartMentID)
INCLUDE (LegalDescription)


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值