索引的查询路径8

来源:互联网 发布:centos修改版本号 编辑:程序博客网 时间:2024/04/29 11:46

/*
 8、覆盖索引(IX_WorkOrder_ProductID(Include StartDate))
*/
--修改IX_WorkOrder_ProductID索引,使其包含StartDate列

 

--打开一个查询编辑器,点击编辑器上面的显示查询计划按钮
SET STATISTICS TIME ON --显示查询执行时间
SET STATISTICS IO ON --显示查询的io读取
CHECKPOINT 1   --提交检查点,
DBCC DROPCLEANBUFFERS --删除数据缓存
DBCC FREEPROCCACHE  --删除存储过程缓存

SELECT WorkOrderID,StartDate FROM Production.WorkOrder WHERE ProductID = 722

--查询结果是351行,执行时间是131毫秒,每毫秒读取行数2.68行,消耗成本是:0.004,逻辑读取3
--查询计划步骤:
--1、NonClustered Index Seek(IX_WorkOrder_ProductID)
--2、SELECT

/*
 说明:
 1、由于ProductID是一个非聚集索引列,
 非聚集索引列存储方式:
 (1)在存在聚集索引的表中,一列表示非聚集索引列,另一列表示聚集索引键位置。
 (2)在不存在聚集索引的表中,一列表示非聚集索引列,另一列表示数据的物理位置RowID(字符长度超过8)
 2、在使用非聚集索引时,由于查询的两列存在于非聚集索引中,并且非聚集索引包含了StartDate,
 则直接读取非聚集索引即可以获取到数据。

*/