文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

MogDB 5.0.11

1. 版本说明

MogDB 5.0.11是MogDB 5.0.0的补丁版本,于2025-04-03发布,其在MogDB 5.0.10的基础上新增了部分特性并修复了部分缺陷,内容如下:


2. 新增特性

2.1 存储过程支持sql语句分析

支持在DBE_PERF.pg_stat_activity表中展示SQL的执行计划和存储过程内部正在执行的SQL。存储过程执行中定位当前执行语句, 在一个存储过程执行过程中,可以通过查询pg_stat_activity系统表,来查看正在执行的语句是哪一个。存储过程结束后通过statement_history查询历史慢sql, 会将时间执行计划等信息存入到statement_history中,慢sql的判断标准由log_min_duration_statement参数控制。 支持在DBE_PERF.statement_history记录存储过程中的sql语句与相关信息。该表的使用参见以下页面:

相关页面STATEMENT_HISTORY

以下内容需要注意:

  • 此表必须在postgres库内查询,其它库中不存数据。

  • 此系统表受track_stmt_stat_level控制,默认为"OFF,L0",第一部分控制Full SQL,第二部分控制Slow SQL。 set track_stmt_stat_level = 'L1,L1'; set instr_unique_sql_track_type = 'all'; 此时记录所有的sql。 set track_stmt_stat_level = 'OFF,L1'; 此时仅记录slow sql。 set track_stmt_stat_level = 'OFF, L2'; 此时在以上的基础上,还记录部分锁的信息。

  • 对于Slow SQL,当track_stmt_stat_level的值为非OFF时,且SQL执行时间超过log_min_duration_statement,会记录为慢SQL。

2.2 兼容性增强

  1. 支持插入非法字符以及 C 风格字符串结束符 '\0',通过设置 GUC 参数 enable_compatible_illegal_chars 开启本功能。

    相关页面支持插入部分乱码字符

  2. trigger 语法兼容性增强,支持 Oracle 风格的匿名块方式创建,支持 referencing 等语法,通过设置 GUC 参数 enable_ora_trigger_style 开启本功能。

    相关页面Oracle trigger语法兼容性增强

  3. 支持 ROWID 伪列,ROWID来自 “tableoid+ctid” 合并计算,在事务内可保证 ROWID 的唯一性,即使被更新的行,通过原 ROWID 也可正常查询到。

  4. 支持 ALTER TABLE xxx DROP PRIMARY KEY CASCADE DROP INDEX 语法,通过 DROP PRIMARY KEY 自动定位并删除主键约束,提升操作效率。

  5. 增加 DBMS_STATS.GATHER_TABLE_STATS 函数接口,可通过更新表的统计信息间接优化查询性能,当执行大规模数据加载后,表数据分布可能发生显著变化,通过调用 GATHER_TABLE_STATS 函数更新指定表的统计信息,避免查询性能下降。还可在业务低峰期通过定时任务自动收集统计信息,确保日常查询性能的稳定;通过合理使用 DBMS_STATS.GATHER_TABLE_STATS,可显著提升数据库性能并减少人工调优成本。

  6. 支持的 exit 命令,通过 gsql 或工具连接到数据库并完成操作后,退出会话可使用原始的 \q\quit 命令,也可使用新增支持的 exitquit 命令,提升兼容性。

  7. 增强 current_timestamp 函数支持时分秒,通过设置GUC参数 a_format_date_timestamp = true 开启本功能。

  8. 支持记录同义词及触发器的创建和修改时间,当用户创建或者修改触发器或同义词时,会将修改操作记录到 pg_object 系统表,用户可以通过查询 pg_object 系统表获取这两个数据库对象的变更历史。

2.3 UStore特性增强

  1. Ustore 支持向量化查询,可显著提升大数据量下分析查询场景的性能,并支持根据执行计划的代价评估结果,动态决定是否使用向量化查询。

  2. Ustore 支持全局临时表,允许在Ustore存储引擎上创建全局临时表,全局临时表对所有会话可见,但每个会话只能操作自己提交的数据。

  3. 优化 Ustore 表在数据删除场景下的空间回收效率,即使存在长事务,依然可以回收空间。优化后可以大幅降低 Ustore 表在数据删除场景下的空间占用,特定场景下可以下降到优化前的 10% 以下;同时还能避免无效数据的扫描,提升Scan查询的性能。

  4. 逻辑复制支持对Ustore表的DDL操作,确保目标库的表结构和源库保持一致,避免源库DDL操作导致逻辑复制中断或者数据不一致。 相关页面逻辑复制支持DDL操作


3. 修复缺陷

  1. 【9986】修复了B模式下MogDB定时任务的开始时间存在误差的问题。

  2. 【9920】修复了在大数据量下,进行树形查询会越来越慢的问题。

  3. 【9943】修复了使用db link 连接Oracle 导致数据库宕机的问题。

  4. 【9889】修复了在存在分区表的场景下执行ALTER ... SET AUTO_INCREMENT = 1 会报错的问题。

  5. 【5931】修复了B模式下显式指定指定collate区分大小写后,无法再次更改为不区分大小写的问题。

  6. 【10062】修复了plsql中open cursor,对于for update的表没有加上锁,和ORACLE表现不一致的问题。

  7. 【10356】修复了使用增量备份恢复,极低概率存在恢复出来的数据包含之前已删除的数据的问题。

  8. 【10336】修复了打开 implicit savepoint 功能后,纯查询出现内存泄漏的问题。

  9. 【10194】修复了使用postgres_fdw查询比gsql查询慢的问题。

  10. 【10038】修复了B模式创建定时任务,执行一会儿后数据库会重启的问题。

  11. 【9944】修复了startwith语句在where子查询中使用from子查询中字段报错的问题。

  12. 【10515】支持了非B模式下使用group_concat。

  13. 【10316】修复了whale插件dbms_random包返回的随机数都是固定值的问题。

Copyright © 2011-2025 www.enmotech.com All rights reserved.