[发明专利]一种自上而下拆分多表慢查询的SQL解释方法及其装置有效
申请号: | 202010910845.X | 申请日: | 2020-09-02 |
公开(公告)号: | CN112052255B | 公开(公告)日: | 2022-05-03 |
发明(设计)人: | 刘德建;张伟泽;何巍巍;陈宏展 | 申请(专利权)人: | 福建天晴在线互动科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455 |
代理公司: | 福州旭辰知识产权代理事务所(普通合伙) 35233 | 代理人: | 程勇 |
地址: | 350212 福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自上而下 拆分 多表慢 查询 sql 解释 方法 及其 装置 | ||
1.一种自上而下拆分多表慢查询的SQL解释方法,其特征在于:所述方法包括如下步骤:
步骤S1、获得SQL语句中的每个词语的词素并进行分类标记记号;
步骤S2、对获得的词素和记号根据设定的文法配置状态机生成语法分析树;对获得的词素和记号,根据预先定义的自上而下的LL(1)文法构建状态机检查词素和记号的记号流,生成语法分析树,进一步生成限定条件语法树;
步骤S3、修正语法分析树得到的语法树信息,使用S属性自上而下补充综合属性和继承属性,来生成分析树;所述步骤S3进一步具体为:利用S属性自上而下检查补充综合属性和继承属性,所述综合属性包括值、别称,继承属性包括表名;来得到全部待查分析树,其中,补充修正查询字段语法树的每个字段所在表作为继承属性做补充;转换JOIN连接表语法树成新的WHERE条件,用此条件限定于JOIN表,并根据词素的类型对综合属性进行补充,转换限定条件语法树成各自表的限定条件,将限定条件限定于自表,并根据词素的类型对综合属性进行补充;最后根据查询字段语法树、JOIN连接字符串与部分限定符归纳用到的表以及表内字段存储到待查字段分析树中,所述部分限定符包括:ORDER BY a,a以及a字段的表;
步骤S4、按分析树的结果一表一个查询SQL语句方式生成中间SQL的查询语句,并做查询与总结数据作返回。
2.根据权利要求1所述的一种自上而下拆分多表慢查询的SQL解释方法,其特征在于:所述步骤S1进一步具体为:读取SQL语句中的每个词语,去除语句空格、制表符、换行符、注释,然后识别词素,并比对词素,判断词素是否为符号表内容;是,抽象成记号,不是不进行处理此词素。
3.根据权利要求2所述的一种自上而下拆分多表慢查询的SQL解释方法,其特征在于:所述步骤S2进一步具体为:对获得的词素和记号,根据预先定义的自上而下的LL(1)文法构建状态机检查词素和记号的记号流,生成语法分析树,即构建3个语法分析器,对3个区进行处理;分别是语句开头到FROM关键字区,用于分析生成查询字段语法树;FROM关键字到WHERE或者ORDER、GROUP限定符区,用于指定查询的表以及JOIN连接表语法树;WHERE或者ORDER、GROUP限定符到结尾区,用于生成限定条件语法树。
4.根据权利要求1所述的一种自上而下拆分多表慢查询的SQL解释方法,其特征在于:所述步骤S4进一步具体为:根据待查询字段分析树生成每个表一个查询语句,其中综合属性的值用占位符表示,待前序查询语句返回值再做补充;其中第一条查询语句查询的表是FROM关键字后第一个表,获得此第一个表的数据后再根据数据替换其他语句的占位符,并进行查询;最后总结数据作返回。
5.一种自上而下拆分多表慢查询的SQL解释装置,其特征在于:所述装置包括词法分析器、语法分析器、语义分析器、以及中间SQL生成器;
所述词法分析器,用于获得SQL语句中的每个词语的词素并进行分类标记记号;
所述语法分析器,用于对获得的词素和记号根据设定的文法配置状态机生成语法分析树;对获得的词素和记号,根据预先定义的自上而下的LL(1)文法构建状态机检查词素和记号的记号流,生成语法分析树,进一步生成限定条件语法树;
所述语义分析器,用于修正语法分析树得到的语法树信息,使用S属性自上而下补充综合属性和继承属性,来生成分析树;所述语义分析器的实现方式进一步具体为:利用S属性自上而下检查补充综合属性和继承属性,所述综合属性包括值、别称,继承属性包括表名;来得到全部待查分析树,其中,补充修正查询字段语法树的每个字段所在表作为继承属性做补充;转换JOIN连接表语法树成新的WHERE条件,用此条件限定于JOIN表,并根据词素的类型对综合属性进行补充,转换限定条件语法树成各自表的限定条件,将限定条件限定于自表,并根据词素的类型对综合属性进行补充;最后根据查询字段语法树、JOIN连接字符串与部分限定符归纳用到的表以及表内字段存储到待查字段分析树中,所述部分限定符包括:ORDER BY a,a以及a字段的表;
所述中间SQL生成器,按分析树的结果一表一个查询SQL语句方式生成中间SQL的查询语句,并做查询与总结数据作返回。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建天晴在线互动科技有限公司,未经福建天晴在线互动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010910845.X/1.html,转载请声明来源钻瓜专利网。