【技术实现步骤摘要】
一种存储过程编译方法、系统、电子设备和存储介质
[0001]本专利技术涉及数据库
,尤其涉及一种存储过程编译方法、系统、电子设备和存储介质。
技术介绍
[0002]在现代数据库中,存储过程作为核心功能被广泛运用,存储过程能够将一系列特定操作的结构化查询语句(Structured Query Language,SQL)功能集以及控制逻辑封装在数据库端,并且存储过程仅需编译一次,大大减少应用和数据库的网络交互以及SQL解析成本。但是在分布式数据库内由于数据规模巨大,并发访问多,导致存储过程本身的执行速度成为数据库的瓶颈。
[0003]目前现有的存储过程的编译执行存在以下问题:
[0004]1、现有存储过程模块仅对部分表达式进行编译执行,无法实现全部执行优化,导致存储过程模块的性能提升不高。
[0005]2、只能将机器代码进行编译执行,不能实现对条件、循环等控制逻辑的优化,只能对上述控制逻辑进行解释执行,导致存储过程的执行效率较低。
技术实现思路
[0006]本专利技术提供了一种存储过 ...
【技术保护点】
【技术特征摘要】
1.一种存储过程编译方法,其特征在于,包括:根据语法分析模块生成存储程序的中间表示;基于数据流分析优化模块对所述中间表示进行优化;根据代码生成模块按照所述中间表示的表示类型生成本地执行代码。2.根据权利要求1所述方法,其特征在于,所述根据语法分析模块生成存储程序的中间表示,包括:在所述语法分析模块对所述存储程序进行语法分析以生成语法分析结果;根据所述语法分析模块对所述语法分析结果进行静态单一赋值后作为所述中间表示。3.根据权利要求1所述方法,其特征在于,所述基于数据流分析优化模块对所述中间表示进行优化,包括:在所述数据流分析优化模型对所述中间表示进行常量传播优化、复写传播优化、存活分析以及死代码消除中至少之一。4.根据权利要求3所述方法,其特征在于,所述中间表示的存活分析包括:确定所述中间表示内非存活向量内存;控制所述中间表示的变量复用所述非存活向量内存。5.根据权利要求1所述方法,其特征在于,所述根据代码生成模块按照所述中间表示的表示类型生成本地执行代码,包括:按照所述代码生成模块判断所述中间表示的所述表示类型;若所述表示类型为可表示指令类型,则所述代码生成模块调用预设编译器生成所述中间表示的所述本地执行代码;若所述表示类型为特殊类型,则所述代码生成模块调用代理执行模块回调所述中间表示并生成对应的所述本地执行代码...
【专利技术属性】
技术研发人员:李光跃,金嘉磊,
申请(专利权)人:星环信息科技上海股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。