码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数仓的等待视图中,为什么会有Hashjoin-nestloop


    合集 - 数据库(98)
    1.数仓实践丨主动预防-DWS关键工具安装确认2023-04-252.一条SQL如何被MySQL架构中的各个组件操作执行的?2023-05-043.GaussDB(DWS)网络流控与管控效果2023-05-054.GaussDB(DWS)字符串处理函数返回错误结果集排查2023-05-065.从缓存的本质说起,说服技术大佬用Redis2023-05-106.这年头怕数据泄露?全密态数据库:无所谓,我会出手2023-05-197.华为云新一代分布式数据库GaussDB,给世界一个更优选择2023-06-098.GaussDB技术解读丨高级压缩2023-07-199.掌数科技携手华为云GaussDB,助力金融科技创新,联合打造行业标杆2023-07-2010.一文带你全面了解openGemini2023-07-2511.GaussDB(for Redis)多租户:读写权限控制和数据库隔离的完美融合2023-07-2612.5分钟迁移关系型数据库到图数据库2023-07-2613.数仓现网案例丨超大结果集接收异常2023-07-2714.DWS轻量化更新黑科技:宽表加工优化2023-07-2815.数据库行业需要什么样的人才?高校老师这样说2023-07-3116.数仓性能优化:倾斜优化-表达式计算倾斜的hint优化2023-08-0117.GaussDB技术解读系列之SQL Audit,面向应用开发的SQL审核工具2023-08-0218.带你认识数仓的监控系统TopSQL2023-08-0419.带你走进数仓大集群内幕丨详解关于作业hang及残留问题定位2023-08-0720.实时入库不用愁,HStore帮分忧2023-08-0821.openGauss数据库在CentOS上的安装实践2023-08-1022.揭秘华为云GaussDB(for Redis)丨大key治理2023-08-1123.GaussDB(DWS)函数不同写法引发的结果差异2023-08-1124.数仓中典型的几种不下推语句整改案例2023-08-1425.GaussDB技术解读系列之应用无损透明(ALT)2023-08-1426.华为云GaussDB(for Influx)单机版上线,企业降本增效利器来了2023-08-1527.数仓备份经验分享丨详解roach备份原理及问题处理套路2023-08-1628.中国云数据仓库,双第一!2023-08-2129.华为云GaussDB打造最可信的数据库,给世界一个更优选择2023-08-2230.GaussDB技术解读系列:高级压缩之OLTP表压缩2023-08-2331.十年磨一剑的华为云GES,高明在哪2023-08-2532.使用DWS集群,用户被锁定如何解锁2023-08-2533.GaussDB技术解读系列:高安全之密态等值2023-08-2834.GaussDB技术解读:应用无损透明(ALT)2023-08-3035.数仓资源管控理论已掌握,是时候实战了2023-09-0436.row_number函数的不稳定性2023-09-0537.GaussDB技术解读丨数据库迁移创新实践2023-09-0738.聊聊GaussDB AP是如何执行SQL的2023-09-0739.Navicat 携手华为云GaussDB,联合打造便捷高效的数据库开发和建模工具方案2023-09-1140.GaussDB技术解读系列丨运维自动驾驶探索2023-09-1241.一次性全讲透GaussDB(DWS)锁的问题2023-09-1342.GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例2023-09-1443.多主架构:VLDB技术论文《Taurus MM: bringing multi-master to the cloud》解读2023-09-1444.GaussDB(for Redis)游戏实践:玩家下线行为上报2023-09-1845.一文详解数据仓库的物理细粒度备份恢复2023-09-1846.华为云HBase冷热分离最佳实践2023-09-2547.四问复合索引,让你的数据查询速度飞起2023-09-2748.GaussDB(DWS)案例丨MERGE场景下语句不下推引起的性能瓶颈问题2023-10-0749.如何强制SQL走性能更优的hash join2023-10-1350.如何使用GaussDB(DWS)的本地临时表进行数据处理2023-10-1751.华为云GaussDB亮相金融业数据库技术大会2023-10-1852.2个数仓中不等值关联优化案例2023-10-1953.数仓实时场景下表行数估算不准确引起的的性能瓶颈问题案例2023-10-2454.详解GuassDB数据库权限命令:GRANT和REVOKE2023-10-2655.DWS临时内存不可用报错: memory temporarily unavailable2023-10-2756.华为云GaussDB城市沙龙活动走进安徽,助力金融行业数字化转型2023-10-3157.理论+应用,带你了解数据库资源池2023-11-0258.人人用数不用愁,动态数据脱敏为您解忧2023-11-0359.实例讲解数据库的数据去重2023-11-0760.数仓实践丨表扫描时过滤行数过多引起的性能瓶颈问题2023-11-0861.实例详解构建数仓中的行列转换2023-11-0862.Proxy下的Prepare透传,让GaussDB(for MySQL)更稳固,性能更卓越2023-11-0963.浅析KV存储之长尾时延解决办法2023-11-1064.实例讲解数据库的定义重载函数2023-11-1565.详解数据库SQL中的三个语句:DROP、TRUNCATE 、DELETE2023-11-1666.华为云GaussDB助力工商银行、华夏银行斩获“十佳卓越实践奖”2023-11-1767.Navicat 基于 GaussDB 主备版的快速入门2023-11-2068.数仓实时算子难以观测,快来试试算子级监控吧2023-11-2169.列举数据库缓存使用场景实例和命令速查表2023-11-2470.带你认识多模数据库GeminiDB架构与应用实践2023-11-2771.3招解决时序数据高基数难题,性能多维度提升!2023-11-2772.数仓性能调优:row_number() over(p)-rn=1性能瓶颈发现和改写套路2023-11-2873.数仓实践丨常量标量子查询做全连接导致整体慢2023-11-3074.细说GaussDB(DWS)的2种查询优化技术2023-12-0475.细说SQL与ETL之间的小秘密2023-12-0676.从概念到实践,带你掌握层次递归查询2023-12-0877.GeminiDB Cassandra接口新特性PITR发布:支持任意时间点恢复2023-12-1178.你的JoinHint为什么不生效2023-12-1879.六步走向无忧,华为云数据库高可用的秘密武器2023-12-2280.数仓调优实践丨SQL改写消除相关子查询2023-12-2581.GaussDB(for MySQL)新特性TDE发布:支持透明数据加密01-0882.详解GaussDB(DWS)通信安全的小妙招:连接认证机制01-1083.GaussDB(for MySQL) RegionlessDB发布:全球数据库技术01-1284.5分钟带您了解DRS录制回放01-1585.ICDM'23 BICE论文解读:基于双向LSTM和集成学习的模型框架01-1986.数仓如何递归查询视图依赖01-2487.支撑核心系统分布式改造,GaussDB为江南农商银行筑稳根基01-2588.近6成金融机构的选择!华为云GaussDB加快金融核心系统转型01-2589.GaussDB(for MySQL)剪枝功能,让查询性能提升70倍!01-2990.2023年度十佳课题公布:华为云GaussDB获权威认可01-3091.详解如何在数仓中搭建细粒度容灾应用02-0192.对话苏光牛:国内数据库市场已进入关键转折点,2024年或是分水岭02-0693.GaussDB通信运维:详解stream连接池设计原理02-1994.GaussDB(for MySQL) Serverless全面商用:无感弹性,极致性价比02-1995.华为云GaussDB支撑农行超级网银业务,性能和稳定性备受认可02-2296.实例详解数据库的游标管理02-2697.数仓实践丨从CU入手优化HStore表02-27
    98.数仓的等待视图中,为什么会有Hashjoin-nestloop02-28
    收起

    本文分享自华为云社区《GaussDB(DWS)等待视图之Hashjoin-nestloop》,作者:Arrow0lf。

    1. 业务场景

    众所周知,GaussDB(DWS)中有3种常见的join方式:HashJon/MergeJoin/NestLoop

    但在有一些场景中,等待视图中等待状态会显示为:HashJoin-nestloop,如下图所示。这种表示什么含义?

    2. 基本原理

    为了明白该状态的原因,首先思考如下场景:当业务侧两张大表join时,如果由于未做analyze或统计信息不准,导致build hash的一侧选择了大表,且该表在join列上重复值很多,会导致hashjoin时内存膨胀,当内存不足时,hashjon算子会下盘,但是由于join列上存在大量重复值,下盘文件无法有效分裂,此时,如果将整个文件都读取到内存中,会导致内存占用很高,出现内存过载,导致其他业务内存不足报错。

    为了解决该场景,在向量化hashjoin时,当使用内表创建的hash表过大导致内存不足时,不再强制进行hashjoin,会通过内外表交换或执行nestloop使查询平稳进行,防止出现内存报错,此时,等待视图状态为“HashJoin-nestloop”

    上述特性通过hashjoin_spill_strategy参数控制,默认为0,取值范围为0-6的整数,详情可以参考产品文档(8.1.2及以上版本),简单来讲:

    取值为0或5,hashjoin时会先尝试内外表交换,如果仍然内存占用高,会选择nestloop;

    取值为1或6,hashjoin时会先尝试内外标交换,如果仍然内存占用高,会强行执行hashjoin;

    取值为2,hashjoin行为和原本的行为保持一致,即使内存不够,也会强制执行hashjoin

    3. 业务影响

    当等待视图出现Hashjoin-nestloop时,可能会导致原来内存占用高,单能执行成功的语句,在被转换成nestloop后,可能会短时间执行不出来。尤其是当数据量变化较大,统计信息差异较大时,容易出现执行计划非最优场景下的性能劣化。

    4. 解决方法

    如果出现上述HashJoin-nestloop时间长,导致业务超时的情况。可以将参数hashjoin_spill_strategy设置为2进行规避。不再进行内外表交换或执行nestloop,使业务行为与之前的行为保持一致。

    在内存充裕的场景下,可以全局设置为2。

     

    点击关注,第一时间了解华为云新鲜技术~

     

  • 相关阅读:
    java springboot application中设置正确的数字密码连不上数据库问题解决
    Redis学习笔记13:基于spring data redis及lua脚本list列表实现环形结构案例
    内衣洗衣机便宜好用的牌子有哪些?四款公认好用洗内裤机推荐
    以太坊合并对NFT意味着什么?
    JVM(5)
    硬核!国内首款增加多类适应症的人工智能辅助诊断软件完成临床试验
    短视频视频号矩阵系统源码独立部署开发对接
    分享tushare的使用方法
    模拟退火算法(SA)求解旅行商问题(TSP)python
    Vue3 企业级优雅实战 - 组件库框架 - 8 搭建组件库 cli
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/18038932
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号