用HAWQ轻松取代传统数据仓库 —— 查询优化

Posted wzy0623

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用HAWQ轻松取代传统数据仓库 —— 查询优化相关的知识,希望对你有一定的参考价值。

        即便对SELECT等数据库查询语句已经很熟悉了,但HAWQ里的查询有其自己的特点,还是需要研究一下。

一、HAWQ的查询处理流程
        理解HAWQ的查询处理过程有助于写出更加优化的查询。与任何其它数据库管理系统类似,HAWQ也有如下的查询执行步骤:
  1. 用户使用客户端应用(如psql)连接到HAWQ master主机上的数据库实例,并向系统提交SQL语句。
  2. master接收到查询后,由查询编译器解析提交的SQL语句,并将生成的查询解析树递交给给查询优化器。
  3. 查询优化器根据查询的磁盘I/O、网络流量等成本信息,生成它认为最优的执行计划,并将查询计划交给查询分发器。
  4. 查询分发器依照查询计划的成本信息,向HAWQ资源管理器请求所需的资源。
  5. 获得资源后,查询分发器在segment上启动虚拟段,并向虚拟段分发查询计划。
  6. 查询执行器使用多个虚拟段并行执行查询,最终结果传送至master,最后向客户端返回查询结果。
        HAWQ基本的查询处理流程如图1所示。