/*
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,
则直接读取非聚集索引即可以获取到数据。
*/
902

被折叠的 条评论
为什么被折叠?



