SQL SERVER 2008 开发系列(一)

Posted on 2008-09-15 22:45  狂笑人生  阅读(201)  评论(0)    收藏  举报

索引新特点

本章节以AdventureWorks数据库为示例;

SQL SERVER 2008 的索引提供了筛选功能;

USE AdventureWorks
GO

--创建筛选索引

--以下索引是针对网上订购的进行非聚索引
CREATE INDEX IX_Sales_SalesOrderHeader_Online
    ON Sales.SalesOrderHeader(SalesOrderID, OrderDate)
    WHERE OnlineOrderFlag = 1  --新特点,可以索引的数据进行筛选

--以下索引是针对不是网上订购的进行非聚索引

CREATE INDEX IX_Sales_SalesOrderHeader_Retail
    ON Sales.SalesOrderHeader(SalesOrderID, OrderDate)
    WHERE OnlineOrderFlag = 0

--接下来,演示筛选索引如何覆盖查询

--第一:查询网上订购信息,IX_Sales_SalesOrderHeader_Online索引就是针对这部分数据进行索引,查看执行计划;

SELECT SalesOrderID, OrderDate FROM Sales.SalesOrderHeader
    WHERE OnlineOrderFlag = 1

clip_image002

从执行计划上,我们可以看出,上面查询只检索了IX_Sales_SalesOrderHeader_Online索引;

第二:查询不是网上订购 IX_Sales_SalesOrderHeader_Retail索引就覆盖此次查询,如下:

SELECT SalesOrderID, OrderDate FROM Sales.SalesOrderHeader
    WHERE OnlineOrderFlag = 0

查看执行计划:

clip_image004

从执行计划上,我们可以看出,上面查询只检索了IX_Sales_SalesOrderHeader_Retail索引;

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3