#23.2.9

# 版本定位

YashanDB v23.2.9版本在v23.2.1的基础上丰富了新特性与持续进行性能优化,为可用于长期服务支持的版本。

# 版本说明

版本号:v23.2.9

发版日期:2025 年 1 月 9 日

# 特性更新

YashanDB v23.2.9版本继承自YashanDB v23.2.8版本全部发布的功能,同时新增以下关键能力特性:

# SQL引擎增强

  • SQL功能增强:

    • 在分布式系统和特定需要保证唯一性的诉求下,实现通过SYS_GUID函数生成全局唯一标识符,可用于LSC列存生成主键数据和数据同步等业务场景。

    • 列字段和别名长度扩展:在v23.2.9版本前,投影列字段和别名长度最大为20B,在未指定别名的场景下字段名较长容易被截断和重名造成不好体验。该版本针对此场景做了能力增强,扩展投影列和别名长度至64B,满足更大的使用范围,提高易用性。

    • Oracle的PL/SQL语法中不支持使用%操作符作取模操作,只能使用MOD语法。YashanDB新增PL的MOD语法,此语法实现的是取模操作,同操作符“%”的作用一致,丰富使用场景,增加兼容性。

  • SQL性能优化:

    • 在使用CTE查询且存在多个子查询的场景下,通过设置_WITH_SUBQUERY隐藏参数,指示优化器按照物化/代价计算/内联的方式优化CTE,实现子查询物化共享实现,加快查询效率。

    • 支持PIPELINED管道函数,通过PIPE ROW函数将数据一行一行地返回给调用者,不需要等待所有数据处理完才返回结果,可以显著减少内存使用和提高性能。

  • GIS能力增强:

    • 在v23.2.9版本之前,CREATE TABLE语法创建GIS表时只支持ST_GEOMETRY类型,v23.2.9版本实现了Geometry列支持声明指定子类型、SRID,例如geometry(point, 4326),兼容了PostGIS的语法和行为,同时支持Geometry_Columns视图,可查询Geometry数据的子类型、SRID、维度,提高易用性。

    • 该版本新增支持带Geometry列的表在全表扫时支持并行,且部分GIS函数在计算中也支持并行能力,提高了GIS函数和对象的处理性能。

    • 新增GIS函数:

      • 支持ST_MakeValid函数,在不丢弃顶点的情况下,把无效的Geometry对象转换成有效的Geometry对象。

      • 支持ST_CollectionExtract函数,从一个(Multi)Geometry对象中找出并返回指定类型的Geometry对象。

      • 支持ST_Centroid函数,‌用于计算几何图形的质心(几何中心)。

      • 支持ST_PointOnSurface函数,返回一个位于geometry实例内部的任意点。

      • 支持ST_Transform函数,将传入的Geometry对象的坐标参考系转换成指定的坐标参考系并返回。

# 易用性

  • 安装部署易用性增强:

    • 在使用yasboot安装部署数据库时,通过特定算法,对安装包进行计算值与使用公钥解密的值对比一致判断是否被篡改,如被篡改则安装强制终止,同时也支持yasboot支持命令直接校验指定安装包是否被篡改。提高易用性和安全性。

    • 针对资源要求不高或环境资源小的场景下,YashanDB通过对DBMS_PARAM包进行优化,推荐参数时降低默认值及去除对性能和可用性无影响的参数资源设置,从而达到使用更小的内存配置达到更好数据库参数配置的优化效果,结合新增指定内存大小部署方式,使用户在小资源场景下也能体验相应好的性能;同时增加引导式安装部署和前置校验的能力,提高易用性。

  • 运维诊断能力增强:

    • 通过支持设置10053事件,例如'10053 TRACE NAME CONTEXT FOREVER, LEVEL 1',记录SQL生成执行计划过程,例如索引选择、JOIN顺序、算子选择等信息。用于跟踪SQL语句成本计算的内部事件,记载CBO模式下优化器如何计算SQL成本,生成相应的执行计划。同时支持设置生成TRACE日志的路径和大小,提高易用性。

    • 支持使用SQL_ID绑定执行计划:通过新增CREATE OUTLINE outline_name ON sql_id USING HINT hint;语法,给指定SQL_ID的SQL语句创建OUTLINE,让SQL固定为指定的HINT的指引的执行计划,解决无需业务进行SQL更改,也能到计划绑定的目的,提高了灵活性。

    • 在v23.2.9版本前,清理AWR数据是通过DELETE操作删除的,在删除大量数据时,耗费时间较长。该版本增强了AWR能力,通过把对应的系统表调整为分区表,将清理历史数据操作变为直接DROP分区操作,提高清理效率。

# 驱动

  • 新增支持.NET2.0驱动,实现基于VB.NET语言对.NET2.0平台开发的32位应用项目,丰富了支持的应用场景。

  • C驱动接口增强:通过新增语句句柄属性设置yacSetStmtAttr接口,设置当前stmt的SQL执行超时时间,可以有效避免因长时间等待而导致的连接失败或查询超时问题。

  • 新增OCI接口功能:

    • LOB函数:实现通过OCI驱动提供LOB数据类型实现对大型数据的存储和检索的功能。

    • 事务函数:实现通过OCI驱动设置和控制事务的功能。

    • 数字函数:实现通过OCI驱动提供OCI NUMBER与各种数值类型转换的功能。

    • 字符串函数:实现通过OCI驱动提供处理字符串和管理内存的功能。