达梦 两个bug json 导致数据库crash 和 优化器解析or 导致结果不一样

news/2025/9/19 9:55:26/文章来源:https://www.cnblogs.com/feiyun8616/p/19100180

##sample1   

无法解析 json 数据库直接crash. 分析函数,定位到BUG

升级数据库软件,问题得到规避 

 

 

########sample 2  优化器解析or 导致结果不一样

 

--测试1 原有的查询顺序,查到空行。

SQL> SELECT coltablename,DONO,colupdateable,colupdateable

  FROM SEBMDEV.DATAOBJECT_LIBRARY

  WHERE DONO = 'addRoleTaskList'

  AND (colupdateable is null or coltablename is null)   

   AND (colupdateable is null or colupdateable = '1');

no rows

 

used time: 1.484(ms). Execute id is 632801.

SQL> set autotrace on

SQL> SELECT coltablename,DONO,colupdateable,colupdateable

2  FROM SEBMDEV.DATAOBJECT_LIBRARY

3  WHERE DONO = 'addRoleTaskList'

4  AND (colupdateable is null or coltablename is null)   

5   AND (colupdateable is null or colupdateable = '1');

 

0  | CSCN2 | DATAOBJECT_LIBRARY | INDEX33555513 | 1

 

used time: 1.306(ms). Execute id is 0.

 

 

--测试2 SQL2 调整了 and 执行顺序,可以查到5条记录,开发想知道差异在哪里

 

try 。可以临时规避,看起来跟连接先后顺序有关:

SELECT coltablename,DONO,colupdateable,colupdateable

FROM SEBMDEV.DATAOBJECT_LIBRARY

WHERE DONO = 'addRoleTaskList'

 AND (colupdateable is null or colupdateable = '1')  <-

AND (colupdateable is null or coltablename is null)   <-

;

SQL> SELECT coltablename,DONO,colupdateable,colupdateable

  FROM SEBMDEV.DATAOBJECT_LIBRARY

  WHERE DONO = 'addRoleTaskList'

   AND (colupdateable is null or colupdateable = '1')

  AND (colupdateable is null or coltablename is null)

  ;

 

0  | CSCN2 | DATAOBJECT_LIBRARY | INDEX33555513 | 1

 

used time: 1.255(ms). Execute id is 0.

 

 

SQL> set autotrace off

SQL> SELECT coltablename,DONO,colupdateable,colupdateable

2   FROM SEBMDEV.DATAOBJECT_LIBRARY

3    WHERE DONO = 'addRoleTaskList'

4     AND (colupdateable is null or colupdateable = '1')

5    AND (colupdateable is null or coltablename is null)

6  ;

 

LINEID   COLTABLENAME DONO      COLUPDATEABLE COLUPDATEABLE

---------- ------------ --------------- ------------- -------------

1     r      addRoleTaskList NULL     NULL

2     r      addRoleTaskList NULL     NULL

3     r      addRoleTaskList NULL     NULL

4     r      addRoleTaskList NULL     NULL

5     p      addRoleTaskList NULL     NULL

 

used time: 1.443(ms). Execute id is 632804.

 

 

 

官方回复:

应该是已知问题,调整下OPTIMIZER_OR_NBEXP,不要包含16就行

OPTIMIZER_OR_NBEXP

 

 

select name,value,sys_value,file_value,type,description from v$parameter 

where name='OPTIMIZER_OR_NBEXP';

NAME VALUE SYS_VALUE FILE_VALUE TYPE DESCRIPTION

0 OPTIMIZER_OR_NBEXP 29 29 29 SESSION Flag of or-expression optimization method

 

 

SP_SET_PARA_VALUE(1,'OPTIMIZER_OR_NBEXP',13);

 

 

达梦厂家分析后如下:此问题为已知的BUG问题,

 

 参数OPTIMIZER_OR_NBEXP包含16时,在生成计划上出现逻辑错误导致结果集错误

 

--OPTIMIZER_OR_NBEXP参数值中不包含16时,能正常返回结果集

 

目前达梦方已修改代码。除了外层判断,内层优化时也需要判断,屏蔽不可优化的nbexp。##可以修改参数OPTIMIZER_OR_NBEXP 不包含16可规避此问题##

 

后续达梦已在25年版本上已修复此BUG。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL迁移至GreatSQL后,timestamp字段插入报错解析

MySQL迁移至GreatSQL后,timestamp字段插入报错解析 背景描述 某业务系统进行国产化适配,将MySQL的数据迁移到 GreatSQL 后,执行 INSERT INTO ,update_time传参为空时报错,报错信息为:ERROR 1048 (23000): Column u…

2025年文件摆渡系统哪个品牌好推荐

内容概要 在寻找文件摆渡系统的过程中,企业往往关心哪个品牌能够更好地满足其安全、高效的数据交换需求。2025年,市场上涌现出众多品牌,但“文件摆渡系统哪个品牌好”这一问题,不少企业给出了共同的答案——Ftrans…

DevExpress WPF中文教程:DataGrid - 服务器数据和大型数据源

DevExpress WPF中文教程:DataGrid - 服务器数据和大型数据源DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程…

VU9P板卡设计方案:565-基于VU9P的32@ SFP28+4@ QSFP28路光纤交换板卡

、板卡概述 板卡基于Xilinx FPGA VU9P 设计的一款32路SFP28+4路QSFP28的光纤交换板卡,用于以太网的交换功能的验证。 二、板卡原理框图三、板卡主要性能 ● 主芯片:选用 XCVU9P-2FLGB2104I(702, 76)47.5*47.5 ● 3…

Python中使用列表、map和filter函数配合lambda表达式来操作集合

在 Python 中,map()、filter() 和 lambda 表达式是处理集合(如列表)的常用工具,可以快速实现 转换 和 过滤 操作。以下是具体示例:1. map() 函数:对列表元素进行转换 作用: 对列表的每个元素应用一个函数,返回…

深入解析:SSM商品导向型模特管理系统-计算机毕业设计源码01876

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

大模型decoder中权重矩阵的理解 - 实践

大模型decoder中权重矩阵的理解 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

文件安全外发平台用哪个,最佳选择是什么?

内容概要 在探讨文件安全外发平台用哪个这一话题时,我们首先要对文件安全外发平台有一个全面的了解。这类平台主要用于确保企业文件在外部传输过程中的安全性,防止数据泄露。市面上存在多种文件安全外发平台,它们各…

【初赛】数 - Slayer

0x3f3f3f3f = 1061109567 0x7f7f7f7f = 2139062143 0x7fffffff = 2147483647 0xffffffff = 4294967295 0x1fffffff = 536870911 0x1f1f1f1f = 522133279

http连接(webFlux vs tomcat)

HTTP连接的最大数量不是一个固定的值,它取决于一个由硬件资源、操作系统配置、网络栈、以及应用程序本身共同构成的复杂系统。 简单来说:在一台配置良好的现代服务器上,使用异步非阻塞模型(如WebFlux),支持超过1…

英语_阅读_Generative AI_待读

Artificial Intelligence (AI) has become part of our everyday life.人工智能(AI)已经成为我们日常生活的一部分。 It makes our smart devices smarter.它让我们的智能设备变得更聪明。 You might have already u…

【初赛】链表 - Slayer

链表性质知识点总结 链表是一种线性数据结构,其核心特点是数据元素(称为 “节点”)通过指针或引用连接,而非像数组那样存储在连续的内存空间中。这种结构决定了它与数组截然不同的性质,适用于频繁插入 / 删除、内…

纷享销客CRM系统自定义APL代码破解企业深度定制难题

在许多中大型企业,尤其是央企、金融、高科技等行业,对 CRM 系统提出了更为复杂的业务流程定制需求。尽管零代码、低代码配置工具有一定的灵活性,但在面对高度复杂、深度融合业务逻辑的安全机制或特殊流程时,仍显乏…

深入解析:Kafa面试经典题--Kafka为什么吞吐量大,速度快

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第2章 zynq开发板FSBL的生成和NAND烧录

前言 由于本人较懒,记录主要是过程,由于zynq的比stm32做的人少很多,资料也少很多,我会简要介绍原理,操作流程主要由图片加少量文字组成,每一章都是在之前的章节基础上做的一、新建FSBL工程 打开vivado,打开SDK打…

工具大全

<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/&…

RocketMQ vs kafka

目录背景和价值1. 更激进的“零拷贝”技术2. 更简洁的存储模型3. 更“粗糙”但高效的批处理4. 权衡取舍的可靠性保证对比总结参考资料 背景和价值 你这个问题非常好,直击了两者设计哲学的核心差异。 简单来说,Kafka …

JL-32 土壤速测仪 手持便携 大容量 多参数可同时监测

JL-32 土壤速测仪 手持便携 大容量 多参数可同时监测产品概述 土壤速测仪是一款携带方便,操作简单,集采集与存储于一体的可移动式观测仪器。由手持式速测主机、土壤类传感器、USB数据线、电源适配器、便携式手提箱等…

el-date-picker时间选择器限制时间跨度为3天 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Android--资料

Android--资料 Android Studio 的 10 个使用技巧 Android中的Radio模糊查询AutoCompleteTextView简单使用 Android基础入门:搜索框组件SearchView Android studio设置jdk版本项目设置和全局设置 三种实现…