[发明专利]SQL预编译方法、装置、服务器和存储介质在审
申请号: | 202111461115.7 | 申请日: | 2021-11-30 |
公开(公告)号: | CN116204546A | 公开(公告)日: | 2023-06-02 |
发明(设计)人: | 方沛;周亚运;卢勤元;付裕 | 申请(专利权)人: | 金篆信科有限责任公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2452;G06F8/41 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 潘登 |
地址: | 100176 北京市大兴区北京经济技术开发区科谷*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sql 预编 方法 装置 服务器 存储 介质 | ||
1.一种SQL预编译方法,其特征在于,包括:
获取SQL预编译请求,其中,所述SQL预编译请求中携带有预编译语句;
检测全局内存中是否存在与所述预编译语句对应的全局预编译对象;
在存在与所述预编译语句对应的全局预编译对象的情况下,向客户端返回预编译成功指令;
在不存在与所述预编译语句对应的全局预编译对象的情况下,根据所述预编译语句,创建全局预编译对象,并使用所述创建的全局预编译对象进行预编译。
2.根据权利要求1所述的SQL预编译方法,其特征在于,在所述获取SQL预编译请求之后,还包括:
对所述全局内存加锁;
在所述创建全局预编译对象之后,还包括:
释放对所述全局内存加的锁。
3.根据权利要求2所述的SQL预编译方法,其特征在于,所述全局内存中包括多个内存池,在所述获取SQL预编译请求之后,还包括:
根据预设的链路和内存池的映射关系,获取第一目标内存池;其中,所述第一目标内存池为所述SQL预编译请求所属的链路映射的内存池;
所述检测全局内存中是否存在与所述预编译语句对应的全局预编译对象,包括:
检测所述第一目标内存池中是否存在与所述预编译语句对应的全局预编译对象;
所述创建全局预编译对象,包括:
在所述第一目标内存池中创建全局预编译对象;
所述对所述全局内存加锁,包括:
对所述第一目标内存池加锁;
所述对释放对所述全局内存加的锁,包括:
释放对所述第一目标内存池加的锁。
4.根据权利要求3所述的SQL预编译方法,其特征在于,在存在与所述预编译语句对应的全局预编译对象的情况下,在所述向客户端返回预编译成功指令之前,还包括:
判断在所述第一目标内存池中,与所述预编译语句对应的全局预编译对象的个数是否达到预设值;
在未达到所述预设值的情况下,根据所述预编译语句,创建全局预编译对象并使用所述创建的全局预编译对象进行预编译;
在达到所述预设值的情况下,进入所述向客户端返回预编译成功指令的步骤。
5.根据权利要求4所述的SQL预编译方法,其特征在于,所述预编译语句对应的各全局预编译对象共用预编译对象公用字段。
6.根据权利要求1所述的SQL预编译方法,其特征在于,在使用所述全局预编译对象进行预编译之后,还包括:
若接收到预编译对象操作指令,则根据所述预编译对象操作指令,在所述全局内存中查找目标全局预编译对象;
使用查找到的所述目标全局预编译对象执行操作指令。
7.根据权利要求6所述的SQL预编译方法,其特征在于,所述根据所述预编译对象操作指令,在所述全局内存中查找目标全局预编译对象之前,包括:
对所述全局内存池加锁;
在查找到所述目标全局预编译对象后,还包括:
释放对所述全局内存池加的锁。
8.根据权利要求7所述的SQL预编译方法,其特征在于,所述全局内存中包括多个内存池,所述在所述全局内存中查找目标全局预编译对象,包括:
根据预设的链路和内存池的映射关系,获取第二目标内存池;其中,所述第二目标内存池为所述预编译对象操作指令所属的链路映射的内存池;
在所述第二目标内存池中查找所述目标全局预编译对象;
所述对所述全局内存池加锁,包括:
对所述第二目标内存池加锁;
所述释放对所述全局内存池加的锁,包括:
释放对所述第二目标内存池加的锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金篆信科有限责任公司,未经金篆信科有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111461115.7/1.html,转载请声明来源钻瓜专利网。