当前位置: 首页 > news >正文

静态网站 搜索功能网络关键词排名软件

静态网站 搜索功能,网络关键词排名软件,石家庄建设厅官方网站,怎么创建网页超链接PgSQL内核特性 - push-based pipeline 执行引擎 数据库的SQL执行引擎负责处理和执行SQL请求。通常情况下#xff0c;查询优化器会输出物理执行计划#xff0c;一般由一系列的算子组成。当前#xff0c;有两种算子流水线构建方式#xff1a;1#xff09;需求驱动的流水线查询优化器会输出物理执行计划一般由一系列的算子组成。当前有两种算子流水线构建方式1需求驱动的流水线由算子不断从下级算子拉取数据2数据驱动的流水线由算子将每个数据推送给父算子。 论文《Push versus pull-based loop fusion in query engines》说明了push和pull执行引擎的区别 Pull流水线基于经典的火山迭代器模型将每个操作抽象成一个算子。整个SQL语句构成一个算子树从树顶递归调用next接口向下层算子请求数据直到查询计划树的叶子节点。优缺点 1以行为单位处理数据每一行数据的处理都会调用next接口当然也可以基于pull模型改造成以batch为单位处理数据 2以行为单位处理会导致CPU缓存使用效率低下 3火山模型接口看起来干净且易懂 论文《Efficiently compiling efficient query plans for modern hardware》提出的Push模型采用Pipeline来组合算子自底而上Push调度。Pipeline的目的1 降低计算节点的任务调度代价2 提升 CPU 利用率3充分利用多核计算能力提升查询性能、自动设置并行度、消除人为设置并行度的不准确性。 1、PgSQL的pipeline执行引擎 GSoC 2017中有个改造pipeline的项目基本思想是遍历执行计划树找到叶子节点从叶子节点开始获取数据然后推送给各个父节点。 执行器中使用RunNode函数递归调用得到叶子节点先遍历右节点然后再遍历左节点当然若没有右节点则直接遍历左节点当没有左右子节点时就到了叶子节点那么通过pushTuple来推送数据。 pushTuple根据父节点类型调用各自推送函数将数据推送给父节点比如上面流程当父节点是LimitState时调用pushTupleToLimit进行推送。 我们看下SeqScan其实就是从存储引擎获取数据进行过滤和投影然后根据父节点类型推送给父节点。 pushTupleToSeqScan(SeqScanState *node)heappushtups(...,node-ss.ps.parent,node)|-- get a tuple in the pageSeqPushHeapTuple(HeapTuple tuple, PlanState *node,SeqScanState *pusher)|-- slot SeqStoreTuple(pusher, tuple);|-- ExecQual ExecProject|-- return pushTuple(slot, node, (PlanState *) pusher);|-- if (!node){//pusher top level node, send to destreturn SendReadyTuple(slot, pusher);} 对于hash join来说需要先构建hash表然后外表数据从hash表中进行探测pipeline引擎中怎么推送完成hash join呢 从RunNode函数中可以也可以看到他是先从内表分支开始推送数据推送给Hash节点构建hash表然后推送给父节点。pushTuple函数中当hash join的右分支推送上来时pushTupleToHashJoinFromInner函数仅获取hash表并不继续向上推送而是HashJoin的左子分支推送上来的数据进入pushTupleToHashJoinFromOuter进行hash探测找到符合条件的数据并向上层父节点推送join结果 可以得知该改造并没有充分利用各个叶子分支并行未来可以向整个方向进行优化。 3、效果 TPCH的 q1, q3, q4, q5,q10, q12 and q14 4、总结 1红色线找叶子节点递归方向蓝色线数据推送方向 2物理执行计划被执行器ExecInitNode初始化时参数带入父节点从而将执行计划构建为子节点--父节点的关系 3通过RunNode递归调用找到叶子节点SeqScan。获取数据后推送给父节点Hash 4Hash节点构建hash表推送给父节点HashJoin。因为数据处于HashJoin的右分支所以通过pushTupleToHashJoinFromInner仅获取hash表到此该分支推送执行就结束了 5左分支SeqScan获取数据后推送给HashTableHashJoin由pushTupleToHashJoinFromOuter执行进行hash探测并将join的结果推送给上层父节点若无上层父节点则推送给用户至此push-based pipeline执行结束。 6该改造并没有将pipeline依据叶子节点进行并行执行仍旧有提升空间当然仅作为一个初次尝试验证push-based pipeline执行。和clickhouse、starrocks等相比仍旧有很大不足。 5、参考 https://postgrespro.com/list/thread-id/2309959 https://wiki.postgresql.org/wiki/GSoC_2017#Implementing_push-based_query_executor
http://www.pierceye.com/news/999601/

相关文章:

  • 网站建设公司北京华网天下实惠网上做医生哪个网站好
  • 小型网站开发时间周期网站广告位图片更换没反应
  • 云服务器能放网站吗wordpress个人博客带会员
  • 网站做推广需要什么条件开一家网络公司需要什么条件
  • 能制作网站的软件wordpress转移至typecho
  • 荆州网站建设流程英文网站建设推广
  • 网站后台素材建e室内设计网官网全景效果图
  • 国外 网站页面设计中国知名的建网站的公司
  • pc网站做移动端适配宁波高质量品牌网站设计厂家
  • 淘宝客网站需要备案建筑材料网站建设
  • c 是用来做网站的吗网易蜂巢 wordpress
  • 网站主题模板制作百润网站建设
  • 搜狗网站排名软件国家城乡建设部网站
  • 专业网站推广服务咨询网站怎么可以被收录
  • 怎么自己做网站挂到百度上通号建设集团有限公司
  • 建设图片展示网站林萌荣温州市网页制作
  • 企业门户网站内容建设如何一个空间做多个网站
  • 行业网站源码网站建设福永附近网络公司
  • 建设网站哪个便宜ps做网站的优点
  • 网站制作中的更多怎么做盘锦市建设银行网站
  • 广西响应式网站建设男女做暧网站
  • 网站建设中心开发公司对施工单位管理措施
  • 青岛网站建设方案优化宋祖儿在哪个网站做网红
  • 莆田网站制作价格wordpress占用带宽
  • 网站用图片做背景搜索引擎推广一般包括哪些
  • 网站首页设计html代码可以发广告的平台
  • 做网站的技术哪个简单泰安吧贴吧
  • 网站制作厂家政务网站开发方案
  • 爱站工具卡片式网站
  • 计算机网站开发图片湛江城乡建设局网站