【译】索引进阶(九):阅读查询计划【下篇】

译者前言:上篇我们了解了查询计划的基本知识,本章我们继续深入探究查询计划,分析其常见的几种操作。

如果两个数据行处理流能够并行进行,在图形化的显示上,它们会出现在对方的上下位置。箭头的宽度代表着在各个流中有多少行数据正在被处理。

举个例子,如下的join查询,扩展了之前的查询以包含销售信息:

SELECT C.LastName, C.FirstName, C.MiddleName, C.Title
, H.SalesOrderID, H.OrderDate
FROM Person.Contact C
JOIN Sales.SalesOrderHeader H ON H.ContactID = C.ContactID
WHERE Suffix = 'Jr.'
ORDER BY Title
View Code

其对应的查询计划如图3:

            图3:一个关联查询的查询计划

快速的看下这个查询计划,它告诉了我们如下一些事情:

  • 两张表同一时间进行扫描
  • 大部分工作花费在扫描表上
  • SalesOrderHeader 表查询出来的数据行比Contact 表要多
  • 两张表没有聚集成一致的顺序,因此将各个SalesOrderHeader 行与它对应的Contact 行匹配起来需要额外的努力,在本例中,使用了一个哈希匹配操作(后面会讲解哈希的更多内容)。
  • 用来排序所选数据行的努力可以忽略不计

猜你喜欢

转载自www.cnblogs.com/qianxingmu/p/10509206.html
今日推荐