#23.2.3
# 版本定位
YashanDB v23.2.3版本在v23.2.1的基础上丰富了新特性与持续进行性能优化,为可用于长期服务支持的版本。
# 版本说明
版本号:v23.2.3
发版日期:2024 年 7 月 8 日
# 特性更新
YashanDB v23.2.3版本继承自YashanDB v23.2.1版本全部发布的功能,同时新增了以下关键特性:
# SQL引擎增强
新增系统包
新增UTL_RAW系统包,提供了操作RAW数据类型的能力。
新增DBMS_SESSION系统包,提供了一组内置的存储过程,用于管理会话级别的信息。
新增DBMS_XA系统包,提供了一组常量、数据结构和函数,用于在PL中调用XA接口。
新增DBMS_APPLICATION_INFO系统包,包用于注册应用程序的名称和操作,便于审核、性能跟踪以及资源使用情况观测。应用程序的名称和操作信息将记录在V$SESSION、V$SQL和V$SQLAREA视图中。
新增UTL_I18N系统包,为一组服务,提供了附加的全球化功能。
新增DBMS_CRYPTO系统包,提供了一组内置的函数,用于数据进行加密和解密。
新增DBMS_DESCRIBE系统包,提供了一组内置的存储过程,用于获取用户自定义存储过程的参数描述信息。
DBMS_SQL系统包新增多个子函数,用于更加灵活的执行动态SQL,包括DDL和DML。
DBMS_STATS系统包新增子函数,支持导入导出统计信息等功能,方便用于备份或迁移。
DBMS_UTILITY系统包新增多个子函数,提供了多种工具类子程序,方便查看错误堆栈和数据库信息等。
DBMS_OUTPUT系统包新增子函数,支持设置SERVEROUTPUT缓冲区大小和打印行为。
DBMS_RESOURCE_MANAGER系统包新增多个子函数,支持维护计划、消费者群体和计划指令等组合使用。
UTL_FILE系统包新增子函数,支持从缓存区对RAW的读写。
存储过程能力增强
存储过程/函数支持嵌套,提高代码的可读性和可维护性,以及增强程序的控制和灵活性。
支持local UDT创建index by功能,允许用户通过二进制整数作为下标直接访问集合类型的数据,避免在插入或访问元素时需要进行扩展(extend)操作的开销,提高了数据检索的效率和便利性。
支持面向对象编程的继承,通过UNDER创建超类型的子类型(subtype、子类型、承类型),子类型会继承超类型(父类型)的属性和方法,同时通过OVERRIDING语法重写超类型方法的实现。
Oracle兼容
在替换Oracle业务系统场景中,YashanDB已经具备通过DBLINK连接Oracle数据库能力。并且新增了通过DBLINK支持在YashanDB创建远端对象的同义词、在YashanDB上调用远端存储过程和查看LOB数据等高级使用场景。
在SQL语法上,增强了外关联运算符(+)功能,覆盖了更多的客户使用习惯和场景。
新增内置函数
支持overlaps函数,用于判断两个时间段是否有重叠。
支持MEDIAN函数,用于非窗口函数计算,获取一组数据的中位数。
支持PERCENTILE_CONT函数,通过接收一个0到1之间的几率值,并返回与声明了排序的percent_rank函数计算值相等的内插值百分比。
支持DATE_SUB函数,兼容MySQL,用于从日期减去指定的时间间隔。
GIS能力增强
根据市场项目的需要,不断丰富空间数据的处理能力,在v23.2.3版本中,Box2D类型支持WKT、WKB格式输出。
# 存储引擎增强
支持CDC接口和Java的API:通过解析Redo日志,可以捕获数据库中的数据变更操作,包括插入、更新、删除等操作,并提供Java形式的API,可直接解析出按事务顺序组装好的SQL。
统计信息增强
支持行级别采样功能,提升采样准确率。
支持收集组合索引前导列的DISTINCT(指定最大前导列数),使优化器提升评估代价和选择扫描方式准确度。
支持表空间最大最小配额:支持在创建表空间和修改表空间时设置最大最小配额功能,方便用户管理。
用户支持设置连接的IP黑白名单:通过PROFILE设置用户连接的IP黑白名单,提高了用户连接的安全性。
# 共享集群能力
共享集群高可用能力增强,满足业务在多地多中心场景的应用以及实践:
支持yasboot部署主备集群。
支持手动Switchover和备库升主(Failover)的能力。
支持最大性能、最大可用和最大保护模式复制。
在数据库故障问题的跟踪和分析时,通常需要分析Block、GCS/GLS等信息来帮助问题定位和分析,在v23.2.3版本支持全局资源信息dump能力:
通过alter system dump datafile命令dump block的全局资源信息、包括buffer内存等信息。
通过dump GCS/GLS资源动作快速获取历史信息,提升了问题定位效率,支持资源历史状态变化追溯能力。
在多实例下脏页刷盘对系统运行性能有较大的影响,v23.2.3版本通过优化实例之间并发刷盘控制机制和提升脏页传输效率,提升了共享集群下脏页刷盘效率,减小消息风暴。
为了灵活方便地管理Redo,提高Redo规划的灵活度,v23.2.3版本支持在线添加和删除Redo文件。
# 分布式能力
增量导入性能优化:通过配置单个导数任务的内存上限,按配额方式申请方式内存,和解决大表多channel任务死锁问题,大幅度提升了增量导入性能提升。
支持密码策略:分布式部署支持PROFILE功能,通过配置密码策略,提高用户密码的安全性。
运维功能增强
支持路由视图,易于查看数据分布情况。
支持视图展示CN/DN间的消息等待事件统计,方便获取诊断信息。
支持分布式在线滚动升级,在较多节点情况下,在线滚动升级大大减少运维成本。
支持GB18030-2022字符集:列存执行在服务端和客户端的字符集支持设置GB18030,即支持了国家标准所规定的变长多字节字符集,且完全向后兼容GB2312-1980以及基本兼容GBK。
# 易用性
imp/exp增强
支持全部元数据的SQL脚本导入导出,用户可以快速导出SQL文本后进展编辑和处理。
支持按SQL结果集导出,方便按照查询结果正确导出数据到CVS文件,用于中间数据处理。
支持过程与结果展示优化,让用户在导数过程中和完成后方便快速知道导数状态,并及时处理。
支持灵活指定分隔符,丰富多种导入导出的CSV分隔格式。
yasldr导入增强
支持基于白名单方式容错导入,在该版本之前,yasldr导入时遇到报错就会中断退出。在v23.2.3版本中,通过在导入命令中,设置指定的错误码,实现在导入过程中遇到该错误码时跳过接着进行导入任务。
支持指定数据分隔符、数据包围符号,通过实现大部分单字节字符为分隔符和包围符,实现兼容多种数据源导出CSV格式。
支持设置字符集、设置会话级别日期格式,满足不同的字符集和日期格式的数据的导入场景。
新增支持GIS对象导入,方便了客户导入,并提升了导入效率(此版本之前导入较复杂)。
# 驱动
为了满足更广的业务场景,YashanDB团队持续丰富驱动类型和新增已支持的驱动功能,优先实现通用的驱动接口能力。
JDBC驱动:支持设置DatabaseMetaData接口返回值,通过设置ProductName返回值为第三方应用软件和YashanDB都兼容的数据库名,使YashanDB可以无需二次开发开始进行连接适配。
ODBC驱动:支持32位Windows操作系统,满足更丰富的业务场景。
ADO.NET驱动:支持YasdbCommandBuilder和YasdbDataAdapter类,用于协调DataSet的更改与关联数据库的单表命令和填充DataSet和更新数据源的一组SQL命令和一个数据库连接。