1 .一种数据库操作语句的处理方法,包括:
获取所述数据库操作语句;
判断所述数据库操作语句是否需要对结果集进行去重;
若是,则获取所述数据库操作语句中参与去重的目标列以及数据源表,并判断所述目
标列中是否存在所述数据源表的关键列,所述关键列为所述数据源表中具有唯一性质和非
空约束的列;
在所述目标列中存在所述数据源表的关键列的情况下,修改所述数据库操作语句的执
行计划,使得所述数据库操作语句只对所述关键列进行去重。
2 .根据权利要求1所述的数据库操作语句的处理方法,其中,
所述判断所述目标列中是否存在所述数据源表的关键列的步骤包括:
将所述目标列根据所述数据源表进行分类,得到每个所述数据源表对应的目标列集
合;
逐一判断每个所述目标列集合中是否存在对应的所述数据源表的关键列。
3 .根据权利要求2所述的数据库操作语句的处理方法,其中,
所述关键列包括主键列;
所述逐一判断每个所述目标列集合中是否存在对应的所述数据源表的关键列的步骤
包括:
获取所述数据源表中的主键列;
判断所述数据源表对应的目标列集合中是否存在所述主键列;
若存在,则判定所述目标列集合中存在所述数据源表的所述关键列。
4 .根据权利要求3所述的数据库操作语句的处理方法,其中,
所述关键列包括唯一索引列;
所述逐一判断每个所述目标列集合中是否存在对应的所述数据源表的关键列的步骤
包括:
获取所述数据源表中的唯一索引列;
判断所述唯一索引列是否存在非空约束;
若是,则判断所述数据源表对应的目标列集合中是否存在所述唯一索引列;
若存在,则判定所述目标列集合中存在所述数据源表的所述关键列。
5 .根据权利要求2所述的数据库操作语句的处理方法,其中,
所述修改所述数据库操作语句的执行计划,使得所述数据库操作语句只对所述关键列
进行去重的步骤包括:
获取所述数据库操作语句对应的所述执行计划中的去重节点;
在所述去重节点中删除所述数据源表对应的目标列集合中所述关键列以外的其他目
标列。
6 .根据权利要求1所述的数据库操作语句的处理方法,其中,
所述判断所述数据库操作语句是否需要对结果集进行去重的步骤包括:
判断所述数据库操作语句中是否存在去重关键词;
若是,则判定所述数据库操作语句需要对所述结果集进行去重。
7 .根据权利要求6所述的数据库操作语句的处理方法,其中,
权 利 要 求 书
1/2 页
2
相关文档
评论