【技术实现步骤摘要】
SQL指纹还原方法、装置、计算机设备和存储介质
本申请涉及计算机
,特别是涉及一种SQL指纹还原方法、装置、计算机设备和存储介质。
技术介绍
在SQL(结构化查询语言)中使用绑定变量已成为开发人员的共识。一般来说,在OLTP系统(联机事务处理系统)中经常会出现同一条SQL语句除了谓词不同之外会被经常反复的执行,而每次执行就由于谓词的不同而被认为是不同的SQL语句,所以每次都会重新生成执行计划,这样每次硬解析带来的资源的争用和消耗会非常大,也可能会产生阻塞。使用绑定变量的SQL语句即为SQL指纹。这类SQL语句通过explain方法是可以获取执行计划的,但MySQL(关系型数据库管理系统)目前还不支持SQL指纹执行计划的获取。有些情况下,我们只能获取到SQL指纹,为了分析SQL语句的性能,需要通过SQL指纹来获取SQL语句的执行计划才可以分析SQL语句的性能。而目前还没有很好的方法通过SQL指纹来还原SQL语句,实现通过SQL指纹分析SQL语句的性能,因此分析SQL语句性能的工作效率低。专利技术内 ...
【技术保护点】
1.一种SQL指纹还原方法,所述方法包括:/n获取待还原SQL指纹;/n对所述待还原SQL指纹进行解析,获得所述待还原SQL指纹的语法树;其中,所述语法树包含了变量节点;所述变量节点配置有用于描述所述变量节点与列表之间对应关系的Jason结构体;/n遍历所述语法树的变量节点,从所述Jason结构体中获取各变量节点的变量对应的列表名称和变量列名;/n根据各所述变量对应的列表名称和变量列名在所述待还原SQL指纹所在的数据库中,获取各所述变量所在的列表中对应列的类型;/n根据各所述变量对应列的类型对所述待还原SQL指纹进行还原,获得还原后的SQL语句。/n
【技术特征摘要】
1.一种SQL指纹还原方法,所述方法包括:
获取待还原SQL指纹;
对所述待还原SQL指纹进行解析,获得所述待还原SQL指纹的语法树;其中,所述语法树包含了变量节点;所述变量节点配置有用于描述所述变量节点与列表之间对应关系的Jason结构体;
遍历所述语法树的变量节点,从所述Jason结构体中获取各变量节点的变量对应的列表名称和变量列名;
根据各所述变量对应的列表名称和变量列名在所述待还原SQL指纹所在的数据库中,获取各所述变量所在的列表中对应列的类型;
根据各所述变量对应列的类型对所述待还原SQL指纹进行还原,获得还原后的SQL语句。
2.根据权利要求1所述的方法,其特征在于,所述获取待还原SQL指纹的步骤,包括:
获取SQL指纹;
调用SQL解析包中的语法校验接口对所述SQL指纹进行语法校验,获得校验结果;
将校验结果为通过的SQL指纹作为待还原SQL指纹。
3.根据权利要求1所述的方法,其特征在于,所述对所述待还原SQL指纹进行解析,获得所述待还原SQL指纹的语法树的步骤,包括:
调用SQL解析包中的解析接口,对所述待还原SQL指纹进行解析,获得所述待还原SQL指纹的语法树。
4.根据权利要求1所述的方法,其特征在于,所述根据各所述变量对应的列表名称和变量列名在所述待还原SQL指纹所在的数据库中,获取各所述变量所在的列表中对应列的类型的步骤,包括:
获取所述待还原SQL指纹所在的数据库的标识;
根据所述标识连接所述待还原SQL指纹所在的数据库;
根据各所述变量对应的列表名称和变量列名,在所述待还原SQL指纹所在的数据库中进行查找,确定各所述变量所在的列表中对应列的类型。
5.根据权利要求4所述的方法,其特征在于,所述根据各所述变量对应的列表名称和变量列名,在所述待还原SQL指纹所在的数据库中进行查找,确定各所述变量所在的列表中对应列的类型的步骤,包括:
根据各所...
【专利技术属性】
技术研发人员:高中正,金海锋,
申请(专利权)人:平安科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。