(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 20221041580 5.7 (22)申请日 2022.04.20 (71)申请人 北京海量数据技 术股份有限公司 地址 100083 北京市海淀区学院路3 0号科 大天工大厦B座6层01室 申请人 广州海量数据库技 术有限公司 (72)发明人 余鹏 何小栋  (74)专利代理 机构 北京尚钺知识产权代理事务 所(普通合伙) 11723 专利代理师 王海荣 (51)Int.Cl. G06F 16/2452(2019.01) G06F 16/2453(2019.01) G06F 16/2455(2019.01) (54)发明名称 数据库中优化多个per centile_cont分析函 数执行的方法 (57)摘要 本发明涉及关系型数据库管 理技术领域, 尤 其涉及一种数据库中优 化多个per centile_cont 分析函数执行的方法。 本方法包括语义分析阶段 解析输出列、 分组获得函数组输出列、 根据函数 ID分组获得percentile_cont小组、 将具有相同 特征的输出列分到同一组内并在内部表示中标 记, 以及执行阶段依次执行同一组内多个 percentile_cont分析函数的瞬态函数和终结函 数。 本方法在数据库的解析和执行阶段, 充分利 用操作的相关性和分析函数的数据局部性, 在组 内的多个分析函数之间共享数据分组排序过程, 提高了SQL 的执行速度和percentile_cont分析 函数在数据库管理系统中的应用效能。 权利要求书1页 说明书6页 附图1页 CN 114817308 A 2022.07.29 CN 114817308 A 1.一种数据库中优化多个p ercentile_cont分析函数执行的方法, 其特征在于, 所述方 法包括下述 步骤: (一)语义分析阶段 (1)对输出列进行解析; (2)对解析后的输出列进行分组, 获得函数组输出列; (3)对函数组输出列根据函数ID进行分组, 获得函数ID为percenti le_cont的小组; (4)根据预设的规则对函数ID为percentile_cont的小组进行再次分组, 将具有相同特 征的输出列分到同一组内, 并在内部表示中标记其所属的分组; (二)执行阶段 (5)执行(4)步获得的同一组内的多个percenti le_cont分析函数的瞬态函数; (6)执行上述各percenti le_cont分析函数的终结函数。 2.根据权利要求1所述的方法, 其特征在于, 步骤(2)中对解析后的输出列进行分组, 将 其分为普通字段组、 常量组、 表达式组、 函数组输出列。 3.根据权利要求1所述的方法, 其特征在于, 步骤(3)中所述函数ID是每个数据库中内 置函数的编号, 根据函数ID可以唯一确定某个函数。 4.根据权利要求1所述的方法, 其特征在于, 步骤(4)中所述将具有相同特征的输出列 分到同一组内是指将排序字段、 排序方式、 分组字段相同的输出列分到同一组内。 5.根据权利要求1所述的方法, 其特征在于, 所述方法还包括: 在步骤(5)执行同一组内 的第一个percentile_cont分析函数的瞬态函数之前, 预先对数据对象进行分组、 排序, 并 将获得的有序分组数据放置在一个后续percentile_cont分析函数都能够访问到的环境 中; 然后逐一执行同一组内各个percentile_cont分析函数的瞬态 函数; 各瞬态函数依次访 问上述有序分组数据, 完成初始化状态的建立。 6.根据权利要求5所述的方法, 其特征在于, 步骤(6)中所述执行上述各percentile_ cont分析函数的终结函数, 终结函数的输入来自于该函数的瞬态 函数的初始 化状态获得的 计算结果。 7.根据权利要求1所述的方法, 其特征在于, 所述方法还包括: 当全部分组都处理完成 后, 结束流 程; 否则, 返回执 行阶段步骤(5), 处 理下一个分组。 8.一种数据库中优化多个p ercentile_cont分析函数执行的系统, 其特征在于, 所述系 统包括: 解析模块: 用于对输出列进行解析; 输出列分组模块: 用于对解析后的输出列进行分组, 获得函数组输出列; 函数分组模块: 用于对函数组输出列根据 函数ID进行分组, 获得函数ID为p ercentile_ cont的小组; 特征分组模块: 用于对函数ID为percentile_cont的小组进行再 次分组, 将具有相同特 征的输出列分到同一组内; 标记模块: 用于在内部表示中标记各输出列所属的分组; 数据分组排序模块: 用于对数据对象进行分组、 排序, 获得有序分组数据; 瞬态函数 执行模块: 用于执 行percenti le_cont分析函数的瞬态函数; 终结函数 执行模块: 用于执 行percenti le_cont分析函数的终结函数。权 利 要 求 书 1/1 页 2 CN 114817308 A 2数据库中优化多个percentile_cont分析函数执行的方 法 技术领域 [0001]本发明涉及关系型数据库管理(RDBMS)技术领域, 尤其涉及一种数据库中优化多 个percenti le_cont分析函数 执行的方法。 背景技术 [0002]在诸如OpenGauss之类的典型的关系型数据库管理系统中处理一个查询, 通常分 为下面三个阶段: [0003](1)词法语法分析, 主要是将用户的输入文本(SQL)转化成一个内部的数据结构, 一般称之为语法解析树, 并验证该语法的正确性, 最终得到一个表示SQ L的语法解析树。 [0004](2)查询优化, 将前一阶段得到的语法解析树, 进行基于规则以及基于物理代价的 优化, 生成一个最优的查询计划。 [0005](3)执行查询计划, 将前一阶段生成的查询计划予以执行(一般采用迭代器的方 式), 得到查询结果并返回给用户。 [0006]在针对数据库进行数据分析过程中, 经常会用到一系列分析函数, percentile_ cont就是一个常用且非常有应用价值的分析函数。 percentile_cont是一种假定连续分布 模型的逆分布函数, 该函数具有一个百分比值和一个排序分组, 并返回一个在有关排序分 组的给定百分比值范围内的内插值。 [0007]然而, 目前的关系型数据库中, 针对多个percentile_cont分析函数还缺少有效的 优化执行的方法, 从而限制了percent ile_cont分析函数在数据库管 理系统中的应用, 影 响 了数据库性能的发挥, 降低了 工作效率。 发明内容 [0008](1)发明目的 [0009]为了克服现有技术的上述不足, 提高percentile_cont分析函数在数据库管理系 统中的应用效能, 本发明首次提出了在数据库的解析和执行阶段, 利用操作的相关性和数 据局部性, 对多个percenti le_cont函数的执 行进行优化的方案 。 [0010](2)技术方案 [0011]第一方面, 本发明提供了一种 数据库中优化多个percentile_cont分析函数执行 的方法, 包括下述 步骤: [0012](一)语义分析阶段 [0013](1)对输出列进行解析; [0014](2)对解析后的输出列进行分组, 获得函数组输出列; [0015](3)对函数组输出列根据函数ID进行分组, 获得函数ID为percentile_cont的小 组; [0016](4)根据预设的规则对函数ID为percentile_cont的小组进行再次分组, 将具有相 同特征的输出列分到同一组内, 并在内部表示中标记其所属的分组;说 明 书 1/6 页 3 CN 114817308 A 3

.PDF文档 专利 数据库中优化多个percentile_cont分析函数执行的方法

文档预览
中文文档 9 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共9页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 数据库中优化多个percentile_cont分析函数执行的方法 第 1 页 专利 数据库中优化多个percentile_cont分析函数执行的方法 第 2 页 专利 数据库中优化多个percentile_cont分析函数执行的方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:14:59上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。