码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 执行日志(3)查看JOIN算子执行


    3.3查看JOIN算子执行

    本节主要介绍Join, Aggregate等算子的trace的详细信息,从中可分析 出算子是否并行执行,采用具体何种方法执行等信息。

    Join算子目前有:

    SortMerge Join :主要用于非等值连接,如t1. a > t2.b;

    Hash Join:主要用于等值连接,内部又细分为RR, One-Pass, Hybrid三 种方法,如t1.a=t2. a;

    NestLoop Join :以上其他方法都失效,走嵌套循环连接;

    Complex Join:主要用于包含Or的连接,Or的两端可以是Sort Merge也 可以是Hash Join;

    3. 3. 1 sort merge join

    BEGIN Join

    cnd(0):

    cnd(0): t1.i < t2. j

    prepare to use sort-merge

    Joining sorters created fo

    inner join (T0 - T1), rows.

    cnd(0) Done(time used: 0.0

    END Join(time used: 0.003s

    3. 3. 2 Hash Join

    等值连接走hash join。hash join有三种,一般情况下会走hybrid hash join

    1. 串行 One Pass Hash Join

    BEGIN Join

    cnd(0):

    cnd(0): lineitem.L_ORDERKEY = orders. O_ORDERKEY

    prepare          to          use          hash          join

    等值连接走hash join

    op buffer size: 16777216, tuple width: 16. op buffer can hold 1048576 rows 算子 buffer 大小 16777216,join 字段每行 16 字节,buffer

    可以装1048576行

    Begin one-pass hash partitioning: divide 1500000 tuples into 6 parts. mat_buf_size = 2796200 看到'one-pass hash partitioning'代表

    走 one-pass hash join

    mat partition thread: divide 1500000 tuples into 6 parts, min 241835
    tuples, max 258974 tuples, avg 250000 tuples.

    Finish one-pass hash partitioning: divide 1500000 tuples into 6 parts. mat_buf_size = 2796200. (time used: 2.104s)

    Begin one-pass hash partitioning: divide 6001215 tuples into 6 parts. mat_buf_size = 2796200 对 join 的右边划分

    Finish one-pass hash partitioning: divide 6001215 tuples into 6 parts. mat_buf_size = 2796200. (time used: 5.589s)

    Finish One-Pass Hash Join preparation: divided each side into 6 partitions

    Hash tree is used, size: 16777216

    Begin     serial    rowid     merge-sorting:      6001215     rows

    对join结果排序,这里serial可以sort可以看出join是串行的

    Finish serial rowid merge-sorting: 6001215 rows. (time used: 5.806s) inner join(T0 - T1),   using hash join,                   produced 6001215 rows.

    cnd(0) Done(time used: 39.754s)

    END Join(time used: 39. 755s)

    1. 并行 One Pass Hash Join

    BEGIN Join

    prepare to use hash join

    op buffer size: 16777216, tuple width: 16. op buffer can hold 1048576

    <

  • 相关阅读:
    QCommandLineOption、QCommandLineParser
    【试题040】多个逻辑或例题2
    JavaScript基础 JavaScript第一天 1. JavaScript介绍
    香港金融科技周2023:AIGC重塑金融形态
    React
    C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.5 数组和指针的其他区别
    [数据集][目标检测]狗狗表情识别VOC+YOLO格式3971张4类别
    一百八十一、Hive——海豚调度HiveSQL任务时当Hive的计算引擎是mr或spark时脚本的区别(踩坑,附截图)
    SpringCloud-1.服务注册与发现(Eureka/Zookeeper/Consul)
    如何快速批量删除PDF文件中的文字 - PDF文字删除器
  • 原文地址:https://blog.csdn.net/aisirea/article/details/128075273
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号