1 .一种数据库操作语句的处理方法,包括:
获取所述数据库操作语句;
判断所述数据库操作语句是否存在子连接;
在所述数据库操作语句存在所述子连接的情况下,判断所述子连接是否符合预设转换
条件,所述预设转换条件为将所述子连接转换为数组子连接所需的转换条件;
在所述子连接符合所述预设转换条件的情况下,将所述子连接转换为所述数组子连
接。
2 .根据权利要求1所述的数据库操作语句的处理方法,其中,
所述判断所述子连接是否符合预设转换条件的步骤包括:
判断所述子连接对应的子连接类型是否属于目标类型中的任一种,所述目标类型包括
IN、SOME、ANY以及ALL;
在所述子连接类型属于所述目标类型中的任一种的情况下,判断所述子连接是否属于
非关联子连接,所述非关联子连接是指所述子连接中的条件不依赖于外部的数据列;
在所述子连接属于所述非关联子连接的情况下,判断所述子连接是否包含易变函数;
在所述子连接不包含所述易变函数的情况下,判断所述子连接是否只涉及单个数据
表;
在所述子连接只涉及单个所述数据表的情况下,判断所述数据表是否符合数据表转换
条件;
若是,则判定所述子连接符合所述预设转换条件。
3 .根据权利要求2所述的数据库操作语句的处理方法,其中,
所述判断所述数据表是否符合数据表转换条件的步骤包括:
判断所述数据表是否属于本地表;
在所述数据表不属于本地表,属于外表的情况下,判定所述数据表符合所述数据表转
换条件。
4 .根据权利要求2所述的数据库操作语句的处理方法,其中,
所述判断所述数据表是否属于本地表的步骤之后还包括:
在所述数据表属于本地表的情况下,判断所述子连接中的子连接谓词所涉及的变量是
否为索引列;
若是,则判定所述数据表符合所述数据表转换条件。
5 .根据权利要求2所述的数据库操作语句的处理方法,其中,
所述判断所述子连接对应的子连接类型是否属于目标类型中的任一种的步骤之前包
括:
对所述数据库操作语句进行解析,得到所述数据库操作语句的查询结构体;
遍历所述查询结构体,执行所述判断所述子连接对应的子连接类型是否属于目标类型
中的任一种的步骤。
6 .根据权利要求1所述的数据库操作语句的处理方法,其中,
所述将所述子连接转换为所述数组子连接的步骤包括:
将所述子连接移动至数组中,并修改所述子连接的类型为ARRAY类型。
7 .根据权利要求1所述的数据库操作语句的处理方法,其中,
权 利 要 求 书
1/2 页
2
评论