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

wordpress如何上传附件2018年企业网站优化如何做

wordpress如何上传附件,2018年企业网站优化如何做,wordpress视频笔记,哪里建设网站不会被封DuckDB核心模块揭秘 | 第1期 | 向量化执行引擎之Pipeline DuckDB是一款非常火的OLAP嵌入式数据库#xff0c;性能超级棒。它分为多个组件#xff1a;解析器、逻辑规划器、优化器、物理规划器、执行器以及事务和存储管理层。其中解析器原语PgSQL的解析器#xff1b;逻辑规划器… DuckDB核心模块揭秘 | 第1期 | 向量化执行引擎之Pipeline DuckDB是一款非常火的OLAP嵌入式数据库性能超级棒。它分为多个组件解析器、逻辑规划器、优化器、物理规划器、执行器以及事务和存储管理层。其中解析器原语PgSQL的解析器逻辑规划器包含binder、plan generator前者解析所有引用的schema中的对象的表达式将其与列名和类型匹配后者将binder生成的AST转换成由基本逻辑查询运算符组成的树优化器产生优化的查询计划物理规划器将优化的查询计划转换成物理执行计划即PhysicalOperator树。它的高性能主要得益于它的push-based pipeline向量化执行引擎。本文介绍下它的向量化引擎pipeline生成原理。 1、物理执行计划长什么样有哪些算子 physical_plan_generator.cpp中CreatePlan函数将逻辑计划节点转换成物理计划节点即PhysicalOperator。有哪些算子类型呢PhysicalOperatorType //--------------------------------------------------------------------// // Physical Operator Types //--------------------------------------------------------------------// enum class PhysicalOperatorType : uint8_t {INVALID,ORDER_BY,LIMIT,STREAMING_LIMIT,LIMIT_PERCENT,TOP_N,WINDOW,UNNEST,UNGROUPED_AGGREGATE,HASH_GROUP_BY,PERFECT_HASH_GROUP_BY,FILTER,PROJECTION,COPY_TO_FILE,BATCH_COPY_TO_FILE,FIXED_BATCH_COPY_TO_FILE,RESERVOIR_SAMPLE,STREAMING_SAMPLE,STREAMING_WINDOW,PIVOT,// -----------------------------// Scans// -----------------------------TABLE_SCAN,DUMMY_SCAN,COLUMN_DATA_SCAN,CHUNK_SCAN,RECURSIVE_CTE_SCAN,CTE_SCAN,DELIM_SCAN,EXPRESSION_SCAN,POSITIONAL_SCAN,// -----------------------------// Joins// -----------------------------BLOCKWISE_NL_JOIN,NESTED_LOOP_JOIN,HASH_JOIN,CROSS_PRODUCT,PIECEWISE_MERGE_JOIN,IE_JOIN,DELIM_JOIN,INDEX_JOIN,POSITIONAL_JOIN,ASOF_JOIN,// -----------------------------// SetOps// -----------------------------UNION,RECURSIVE_CTE,CTE,// -----------------------------// Updates// -----------------------------INSERT,BATCH_INSERT,DELETE_OPERATOR,UPDATE,// -----------------------------// Schema// -----------------------------CREATE_TABLE,CREATE_TABLE_AS,BATCH_CREATE_TABLE_AS,CREATE_INDEX,ALTER,CREATE_SEQUENCE,CREATE_VIEW,CREATE_SCHEMA,CREATE_MACRO,DROP,PRAGMA,TRANSACTION,CREATE_TYPE,ATTACH,DETACH,// -----------------------------// Helpers// -----------------------------EXPLAIN,EXPLAIN_ANALYZE,EMPTY_RESULT,EXECUTE,PREPARE,VACUUM,EXPORT,SET,LOAD,INOUT_FUNCTION,RESULT_COLLECTOR,RESET,EXTENSION }; 让我们看一个简单inner join的例子物理执行计划最上头是投影算子PROJECTION然后其左子树是HASH_JOIN算子HASH_JOIN两个子算子分别为两个顺序扫描SEQ_SCAN 基于物理执行计划构建出pipeline真正执行的是pipeline。 2、物理执行计划如何构建pipeline 2.1什么是MetaPipeline MetaPipeline 表示一组都具有相同Sink的Pipeline。Source为输入Sink为输出Other Node就是其他节点将一个物理执行计划树转换成多个pipeline。一个pipeline包含一个source和一个sink以及若干个operators。 pipeline还存在一定的依赖关系hashjoin节点必须依赖build端的pipeline产生的数据才行所以就需要MetaPipeline构建多个pipeline依赖关系最后执行时仅关注pipeline就可以。 以1中的例子介绍pipeline的构建过程 2.2 Pipeline的构建 1最开始由ExecutorInitializeInteral函数创建一个MetaPipeline。该MetaPipeline的sink为NULLvectorpipelines容器创建一个pipeline该pipeline的sink为NULL。 2接着调用root_pipeline-Build(*physical_plan)使用上面的MetaPipeline继续构建pipeline 3physical_plan为RESULT_COLLECTORBuild会调用对应operator的Buildipelines,即调用PhysicalResultCollector::BuildPipelinesPhysicalResultCollector为PhysicalOperator的子类。 将当前operator即PhysicalResultCollector作为当前pipeline的source如上图所示。 4接着在调用CreateChildMetaPipeline创建一个child_meta_pipelinesink节点为当前节点即PhysicalResultCollector并构建出和上一个pipeline的父子关系 代码 5紧接着使用child_meta_pipeline继续构建pipeline。下一个算子是PROJECTIONPhysicalProjection它没有重写基类的BuildPipelines那么就调用PhysicalOperator的BuildPipelines: projection不是sink并且它的子节点不为空所以在当前pipeline添加一个算子即PhysicalProjection也就是将PhysicalProjection放到当前pipeline的operators容器中 6children[0]-BuildPipelines构建当前算子PhysicalProjection子节点的pipeline。此时到了HashJoin即需要调用PhysicalHashJoin的PhysicalJoin::BuildJoinPipelines继续构建pipeline 首先将HashJoin添加到当前pipeline的operator容器中因为作为探测端的pipeline;然后保留一份当前MetaPipeline中的所有pipeline到pipelines_so_for后面使用接着构建build端的MetaPipelineCreateChildMetaPipeline函数完成主要是构建一个pipelinesink为当前PhysicalHashJoin,source为PhysicalTableScan此时构建的pipeline如下图所示 7然后调用op.children[0].BuildPipelines继续build探测端的pipeline实际上将左表的PhysicalTableScan设置到探测端pipeline的Source中。如上图所示。 8外连接需要使用步骤6保存的pipeline构建一个childpipeline 即使用Metapipeline2的pipeline再构建一个childpipeline需要将PhysicalProjection操作符算子也加进去此时结构如下图所示 9接着会添加依赖都是在CreateChildPipeline函数中完成。对于当前的metapipeline即MetaPipeline2它有两个pipelinepipeline[0]probe端pipeline[1]child pipeline。首先将当前pipelinepipeline[0]放到dependencies[child_pipeline]中然后调用AddDependenciesFrom(child_pipeline, last_pipeline, false)继续添加依赖关系从last_pipeline开始继续向dependencies中添加。 例如当前metapipeline中有n个pipeline下面pipeline[1]为起使pipelinepipeline[m]为dependant那么会将中间所有的pipeline都添加到dependant依赖数组里面。 pipelines[0] .... pipelines[s] --- start ..... pipelines[m] --- dependantpipelines[n-1] 结构unordered_mapPipeline *, vectorPipeline * dependencies;完成依赖后 pipelines[m] : [pipelines[s]......pipelines[m-1]] 由于这里的s0;m1所以依赖关系为pipelines[1] : [ pipelines[0] ]其中pipeline[1]就是child_pipeline。如此child_pipeline : [probe pipeline]表示probe pipeline依赖child_pipeline. 10返回到1此时进入root_pipeline-Ready() 以8的metapipeline2中的pipeline[0]为例反转前 反转后 11总结8中为所有Metapipeline和pipeline 第一个Metapipeline: {pipelines[1], children[1]} 第二个Metapipeline:Children Metapipeline: {pipelines[2], children[1]} 第三个Metapipeline:children metapipeline: {pipelines[1], children[0]} 注意表示的是数组大小 12最后再次回到1Executor::InitializeInternal函数会从root_pipeline(他是metapipeline)递归调用所有的metapipeline的pipelines数组将pipeline汇总到root_pipelines中 root_pipeline-GetPipelines(root_pipelines, false); //vectorshared_ptrPipeline root_pipelines; 这就是pipeline的一个生成过程下期介绍这些pipeline是如何调度的
http://www.hkea.cn/news/14588910/

相关文章:

  • 网站首页新闻模板毕业设计做系统和网站有什么区别
  • 宁波网站制作公司费用价格现货商品交易平台
  • 关闭网站跳转代码江干建设局网站
  • thinkphp 网站开发cdr做网站怎么导出
  • 自己做的网站怎么接入网页游戏瓦房店 网站建设
  • 电子商务成功网站的案例深圳正能量电子网
  • 冷饮店怎么做网站WordPress FCKEditor
  • 深圳家居网站建设公司网站后台管理系统安装
  • 湖州建设局新网站平面ui设计是什么
  • 专业网站建设需要多少钱网站安全监测预警平台建设成效
  • 怎样建设百度网站制作h5免费平台
  • 上海网站搭建怎么知道网站的域名
  • 北京公司注册中介正规企业官网seo
  • 建站申请范文四种软件开发模型
  • 音乐资源网站开发wordpress win8 主题下载
  • 资讯平台网站模板在线观看的seo综合查询
  • 深圳网站seo设计江苏住房建设厅网站
  • 网站建设销售如何接单重庆建设造价信息网
  • wordpress站群目录收录网络规划设计师报考条件
  • wordpress微言网站建设优化保定
  • 在哪个网站做流动补胎的广告好wordpress竖版图片
  • 网站广告推广技巧分享广东手机网站建设多少钱
  • 销售一个产品的网站怎么做wordpress 7z压缩
  • 怎么做跑腿网站做网站目录
  • 小树建站平台网页源代码提取音频
  • 延庆城市建设网站可视化前端开发工具
  • 杭州企业seo网站优化青州网站建设青州
  • 昆明制作网站费用ups国际快递网站建设模块分析
  • 网站后台主流网站开发语言wordpress 上传svg
  • 外贸公司英文网站建设江门seo计费管理