客户应用中遇到问题的地方就是国产数据库的发力点

​因为一大早有个合作伙伴前来交流,所以昨天的文章实际上是匆匆发出来的,并没有完整的表达出我对这个问题的看法。今天在外面出差,本来和客户约好上午见面,因为临时的安排问题,又改到下午了,所以早上有比较充裕的时间来写一写昨天想表达的另外一层意思。

表连接的性能关系到绝大多数管理信息系统的性能问题,而最常用的表连接方式就是NESTED LOOP和HASH JOIN。当HASH JOIN还不成熟的时候,NESTED LOOP是主打,不过对于一些左表返回数据较多或者说找不到一张返回数据量较少(比如小于几百)的左表的情况下,SQL的性能是很差的。HASH JOIN让一些大查询的性能得到了有效的优化。不过HASH JOIN也不是任何时候都有效的,如果原本使用NESTED LOOP的连接被错误的选择为HASH JOIN,会带来巨大的不必要的扫描开销,也会影响SQL的执行时间。因此选择适当的表连接方式对于SQL性能来说十分关键。

昨天在我的测试中存在问题的执行计划,实际上都是企业的信息系统中很常见的SQL产生的,这些SQL在Oracle中表现都是很好的,而当使用某些开源数据库或者国产数据库时才会出现问题,这也反映出我们的国产数据库在优化器上与Oracle的差距。优化常见表连接的执行计划的能力,实际上应该作为国产数据库十分重要的一项工作来做。

SQL解析过程中都会有SQL REWRITE这个阶段,实际上我们遇到的很多SQL的执行计划有问题,都是在这个阶段没能改写出更优的SQL来,所以后续的执行计划生成就会陷入到优化器的缺陷中了。优化器的改进是个十分艰苦的过程,其难度巨大,PG数据库这些年虽然版本迭代很快,但是优化器中的几个顽疾一直没有解决掉(昨天我举的例子中的执行计划存在问题的地方,都是PG优化器由来已久的顽疾),这也充分说明了优化器核心提升的难度。

不过SQL REWRITE这个阶段与优化器的核心之间相对独立(当然其中关联也十分紧密),因此优化SQL REWRITE阶段的能力可以作为数据库厂商优先发力的地方,能够把一个优化器较难处理的SQL改写出一个比较容易处理的SQL,那么某些老大难的问题就不需要动优化器的核心,也能够解决问题了。

一年期我写过一篇文章《从两个小例子看我们的差距》,其中一个是我们以前讨论过的一个ORACLE CBO优化器的例子。在一份100053 trace里,我看到了一个十分奇怪的现象,SQL语句被莫名其妙的做了一次谓词内推(FPD)的转换,在SQL上莫名其妙的增加了一个基于函数索引的谓词断语。刚开始的时候,我认为这种SQL REWRITE后,甚至语义都变了,SQL的执行结果都有可能不对了,Oracle CBO为什么要做这样的FPD呢。后来经过分析发现SQL有个WHERE  ADATE=’20210102 122103’ 这样的条件,不过ADATE上并无索引,不过存在一个substr(ADATE,1,8)索引。按理说这个索引不会被使用,不过这个场景下,使用函数索引能够有效地提高SQL的效率。而在Oracle的核心优化器中增加这方面的能力将会是一个大改动,于是Oracle巧妙的添加了一条FPD规则,对此类SQL通过规则进行一次简单的改写,优化器对于处理此类Sql的性能就大大提高了。

最近这一年里,做了大量的数据库国产化替代相关研究与测试工作,我发现现在绝大多数国产数据库都在高唱秒杀一切的性能,优秀的TPC-C/TPC-H指标,不过我们的用户的实际体验是应用从Oracle迁移下来以后大量的SQL执行性能下降数十倍甚至数百倍。基于这些应用体验,我觉得我们的国产数据库厂商真的需要在这些“小地方”多下点功夫,能够让用户用得更爽。因为我们用户的应用场景中,超过99%的场景是普通的管理信息系统,而不是超高并发,超高交易量的TPMC场景。能够踏踏实实把用户最需要的日常问题都解决好了,用户的应用开发,应用迁移成本都降低了,自然使用你的产品的用户就会越来越多。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/302581.html<

(0)
运维的头像运维
上一篇2025-05-24 20:59
下一篇 2025-05-24 21:00

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注