ITPub博客

首页 > 数据库 > 数据库开发技术 > openGauss学习笔记-226 openGauss性能调优-系统调优-配置LLVM-LLVM适用场景与限制

openGauss学习笔记-226 openGauss性能调优-系统调优-配置LLVM-LLVM适用场景与限制

原创 数据库开发技术 作者:shuchaoyang 时间:2023-12-03 07:00:00 0 删除 编辑

openGauss学习笔记-226 openGauss性能调优-系统调优-配置LLVM-LLVM适用场景与限制226.1 适用场景226.2 非适用场景

openGauss学习笔记-226 openGauss性能调优-系统调优-配置LLVM-LLVM适用场景与限制

226.1 适用场景

  • 支持LLVM的表达式

    查询语句中存在以下的表达式支持LLVM优化:

    表达式计算支持的数据类型包括bool、tinyint、smallint、int、bigint、float4、float8、numeric、date、time、timetz、timestamp、timestamptz、interval、bpchar、varchar、text、oid。

    仅当表达式出现在向量化执行引擎中Scan节点的filter,Hash Join节点中的complicate hash condition、hash join filter、hash join target,Nested Loop节点中的filter、join filter,Merge Join节点的merge join filter、merge join target,Group节点中的filter表达式时,才会考虑是否使用LLVM动态编译优化。

  1. Case…when… 表达式

  2. In表达式

  3. Bool表达式(And/Or/Not)

  4. BooleanTest表达式(IS_NOT_KNOWN/IS_UNKNOWN/IS_TRUE/IS_NOT_TRUE/IS_FALSE/IS_NOT_FALSE)

  5. NullTest表达式(IS_NOT_NULL/IS_NULL)

  6. Operator表达式

  7. Function表达式

  8. Nullif表达式

  • 支持LLVM的算子:

    其中HashJoin算子仅支持Hash Inner Join,对应的hash cond仅支持int4、bigint、bpchar类型的比较;HashAgg算子仅支持针对bigint、numeric类型的sum及avg操作,且group by语句仅支持int4、bigint、bpchar、text、varchar、timestamp类型操作,同时支持count(*)聚集操作。Sort算子仅支持对int4、bigint、numeric、bpchar、text、varchar数据类型的比较操作。除此之外,无法使用LLVM动态编译优化,具体可通过explain performance工具进行显示。

    1. Join:HashJoin

    2. Agg:HashAgg

    3. Sort

    226.2 非适用场景

    • 不支持小数据量表使用LLVM动态编译优化。

    • 不支持生成非向量化执行路径的查询作业。


    👍 点赞,你的认可是我创作的动力!

    ⭐️ 收藏,你的青睐是我努力的方向!

    ✏️ 评论,你的意见是我进步的财富!


    PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!


    原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

    请登录后发表评论 登录
    全部评论
    专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

    注册时间:2021-08-27

    • 博文量
      552
    • 访问量
      303683