<海量数据库解决方案>2011042601

【摘抄】

最优化数据读取方案

此处仅涉及:
局部范围扫描(Partial Range Scan)
表连接的最优化方案

所谓局部范围扫描,并不是指扫描满足Where条件的全部数据行,而是指只要扫描了数组批量(Array Size,该词的近似词义翻译为"运输单位")的行数后立刻返回结果,在用户再次提出输出要求前暂时停止执行的处理方式。
    文中用了一个出租车晚上载客来描述局部扫描的过程。
   
    在全部范围扫描的执行计划中虽然有很多项目,但是如果出现了“Sort”,则可以断定是使用了全部范围扫描的方式对执行单元进行处理。
    涉及“执行单元”:是指执行计划分层结构(Hierarchical Structure)中的一部分。
    就是说,从sort所在位置之下的执行单元都是全部范围扫描的部分。
    注意:即使出现了sort,也不意味整个sql都按照全部范围扫描来执行。
    Sort类型,有很多,如:sort(unique),sort(join),sort(aggregate),sort(order by),sort(group by)等。merge join部分的操作也称为sort merge连接,可以认为该操作为全部范围扫描的方式进行处理的。
    hash join来说,in-memory hash join则是完全可以按照局部范围扫描的方式执行。
    一般的hash join,则不能使用局部范围扫描。
   
    最后,局部范围扫描和数据库管理软件有关。有些软件没有实现这个概念。
posted @ 2011-04-26 10:07  西就东城  阅读(193)  评论(0编辑  收藏  举报