[发明专利]SQL预编译方法、装置、服务器和存储介质在审
申请号: | 202111461115.7 | 申请日: | 2021-11-30 |
公开(公告)号: | CN116204546A | 公开(公告)日: | 2023-06-02 |
发明(设计)人: | 方沛;周亚运;卢勤元;付裕 | 申请(专利权)人: | 金篆信科有限责任公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2452;G06F8/41 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 潘登 |
地址: | 100176 北京市大兴区北京经济技术开发区科谷*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sql 预编 方法 装置 服务器 存储 介质 | ||
本申请实施例涉及数据库领域技术领域,特别涉及一种SQL预编译方法、装置、服务器和存储介质。上述SQL预编译方法,包括:获取SQL预编译请求,其中,所述SQL预编译请求中携带有预编译语句;检测全局内存中是否存在与所述预编译语句对应的全局预编译对象;在存在与所述预编译语句对应的全局预编译对象的情况下,向客户端返回预编译成功指令;在不存在与所述预编译语句对应的全局预编译对象的情况下,根据所述预编译语句,创建全局预编译对象,并使用所述创建的全局预编译对象进行预编译。本申请实施例提供的SQL预编译方法,旨在显著降低内存空间占用的情况下,同时做到数据库性能的提升。
技术领域
本申请实施例涉及数据库领域,特别涉及一种SQL预编译方法、装置、服务器和存储介质。
背景技术
数据库接受到SQL语句之后,需要词法和语义解析,SQL语句优化与执行计划制定,执行并返回结果。但是,在数据库应用程序中,很多时候一条SQL语句可能会反复执行,或者每次执行的时候只有个别的值不同,如果每次都需要进行词法语义解析、语句优化、制定执行计划等,SQL语句执行的效率会明显降低。SQL预编译语句就是将SQL语句中的值用占位符替代,可以视为将SQL语句模板化或者说参数化。SQL预编译可做到一次编译,多次运行,避免了反复做相同的硬解析工作,省去了解析优化等过程,提升了执行效率;另一方面,也可有效防止SQL注入式攻击。
数据库系统作为服务端可以与各客户端建立链路(session),数据库系统会在服务端为每个链路(session)均新建与预编译语句对应的预编译对象(Prepare对象),将Prepare对象作为服务端进行预编译时,所依托的数据结构。
然而,上述方式中的服务端内存中可能存在大量相同的Prepare对象,进而使得内存占用量巨大。
这种巨大的内存占用浪费了物理资源,一方面成为制约数据库并发访问能力的瓶颈,另一方面可能引起物理内存不足导致服务器卡顿或崩溃。
发明内容
本申请实施例的主要目的在于提出一种SQL预编译方法、装置、服务器和存储介质,减小服务端内存占用,避免因服务端巨大的内存占用制约数据库并发访问能力,以及减少因无力内存不足导致的服务器卡顿或崩溃。
为实现上述目的,本申请实施例提供了一种SQL预编译方法,包括:获取SQL预编译请求,其中,所述SQL预编译请求中携带有预编译语句;检测全局内存中是否存在与所述预编译语句对应的全局预编译对象;在存在与所述预编译语句对应的全局预编译对象的情况下,向客户端返回预编译成功指令;在不存在与所述预编译语句对应的全局预编译对象的情况下,根据所述预编译语句,创建全局预编译对象,并使用所述创建的全局预编译对象进行预编译。
为实现上述目的,本申请实施例还提供一种SQL预编译装置,包括:获取模块,用于获取SQL预编译请求,其中,所述预编译请求中携带有预编译语句;检测模块,用于检测全局内存中是否存在与所述预编译语句对应的全局预编译对象;预编译模块,用于在存在与所述预编译语句对应的全局预编译对象情况下,向客户端返回预编译成功指令;在不存在与所述预编译语句对应的全局预编译对象的情况下,根据所述预编译语句,创建全局预编译对象,并使用所述创建的全局预编译对象进行预编译。
为实现上述目的,本申请实施例还提供了一种服务器,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的SQL预编译方法。
为实现上述目的,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的SQL预编译方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金篆信科有限责任公司,未经金篆信科有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111461115.7/2.html,转载请声明来源钻瓜专利网。