【技术实现步骤摘要】
一种基于KV的数据库逻辑计划缓存方法与装置
[0001]本专利技术涉及数据库SQL计算
,特别涉及一种基于KV的数据库逻辑计划缓存方法与装置。
技术介绍
[0002]在分布式NEWSQL数据库管理系统中,SQL引擎的计划要经过RBO和CBO等计划优化操作最终得到可以执行的完整逻辑计划。计划的过程是一个耗时计算过程,目前大多数数据库的计划缓存只是针对模板模式的SQL查询,但对于非模板模式执行的SQL语句由于其SQL内的变量对应的常量数量可变无法做到逻辑计划的复用。在高负载情况下会消耗大量的系统资源,降低系统的承载能力,因此需要增加这种计划的缓存,提高系统承载能力,减少重复的系统资源浪费。
[0003]为了解决在现有分布式NewSQL数据库中当用户频繁使用非模板SQL请求时,无法复用已有的逻辑计划问题,本专利技术提出了一种基于KV的数据库逻辑计划缓存方法与装置。
技术实现思路
[0004]本专利技术为了弥补现有技术的缺陷,提供了一种简单高效的基于KV的数据库逻辑计划缓存方法与装置。
[000 ...
【技术保护点】
【技术特征摘要】
1.一种基于KV的数据库逻辑计划缓存方法,其特征在于:包括以下步骤:步骤S1、逻辑计划缓存的创建步骤S1.1、解析用户SQL请求文本,提取用户输入变量,生成SQL句式模板和相关表信息;步骤S1.2、编译逻辑计划,提取逻辑计划中KV常量表达式,并记录其与用户输入变量的关系;步骤S1.3、经RBO动态调整和CBO优化生成完整的逻辑计划;步骤S1.4、根据生成的SQL句式模板生成索引,根据索引缓存逻辑计划;步骤S1.5、根据SQL句式模板相关表信息生成反向索引缓存;步骤S2、逻辑计划缓存的使用步骤S2.1、解析后续收到的用户SQL请求文本,提取用户输入变量,生成SQL句式模板和相关表信息;步骤S2.2、使用SQL句式模板查询逻辑计划缓存,获取对应逻辑计划和KV常量表达式;步骤S2.3、用新提取的用户输入变量重新计算KV常量表达式,并替换逻辑计划中对应的KV值,生成新的逻辑计划;步骤S3、逻辑计划缓存的更新分布式NEWSQL数据库管理系统基于KV的完整逻辑计划缓存创建完成后,如果缓存的逻辑计划相关的表结构或者是表行数变化导致对应的统计信息发生改变,使用反向索引查找变化表相关的逻辑计划进行淘汰,清空对应得存储空间,更新逻辑计划缓存。2.根据权利要求1所述的基于KV的数据库逻辑计划缓存方法,其特征在于:所述步骤S1中,创建分布式NEWSQL数据库管理系统基于KV的逻辑计划缓存时,提取用户SQL请求文本的SQL句式模板,并将用户SQL请求文本中用户请求的输入变量摘除,单独记录用户请求的输入变量并为其顺序编号,只保留用户SQL请求文本的基本句式作为逻辑计划缓存的索引键值;对用户SQL请求文本进行词法语法以及语义解析,生成对应的AST树,提取相关表信息作为反向索引的键值,经过RBO动态调整和CBO优化转换,生成完整逻辑计划。3.根据权利要求2所述的基于KV的数据库逻辑计划缓存方法,其特征在于:在生成逻辑计划的过程中,记录逻辑计划中所有的KV常量表达式和用户输入变量的关系,将提取到的索引键值、用户输入变量、KV常量表达式、完整逻辑计划以及常量表达式在逻辑计划中的位置统一存储到内存缓存中,以索引键值为查询项创建逻辑计划缓存;以逻辑计划相关表信息创建反向索引,由表信息指向对应的逻辑计划,用来更新对应的逻辑计划。4.根据权利要求1或所述的基于KV的数据库逻辑计划缓存方法,其特征在于:所述步骤S2中,分布式NEWSQL数据库管理系统基于KV的逻辑计划缓存创建完成后,继续对后续接收到的用户SQL请求文本进行SQL句式模板提取,并将用户SQL文本中用户请求的输入变量摘除,单独记录用户请求的输入变量并为其顺序编号,只保留用户SQL请求文本的基本句式作为逻辑计划缓存的索引键值;使用索引键值在逻辑计划缓存中进行查询项匹配,如果匹配命中则直接获取SQL句式对应的逻辑计划和相关的KV常量表达式,然后输入新提取的用...
【专利技术属性】
技术研发人员:史大义,冯友旭,
申请(专利权)人:山东浪潮科学研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。