- 4
- 0
- 约3.99千字
- 约 8页
- 2017-07-07 发布于湖北
- 举报
随着信息化的普及,信息系统覆盖到各行各业,根据实际业务需求,对数据库的查询方式
越来越复杂。子查询在复杂查询中的使用率较高,其性能直接影响到业务处理效率,因此,
优化子查询对于DBA 和开发人员是需要掌握的一项技术。如果数据库内部可以对子查询进
行优化处理,则一方面大大减少了技术人员的工作量,另一方面也简化了SQL 语句的复杂
度。DM7 对子查询进行了大量优化处理,提升了子查询的性能。下面以DM7 在相关子查询
的优化为例进行阐述。
1 概述
本文中对子查询的描述使用术语内表和外表。子查询内出现的表称之为内表;只在子查询之
外出现的表称之为外表。
子查询包括相关子查询和非相关子查询。
(1)相关子查询
子查询中的过滤条件存在外表列和内表列的连接,会影响最终的查询结果。
例1: create table t1(c1 int,c2 int);
create table t2(d1 int,d2 int);
select * from t1 where c1 in(select d1 from t2 where c2=d2);
例1 中的子查询中条件为c2=d2,条件列分别属于t1 和t2 表。查询结果不仅要满足
c1=d1,还要满足c2=d2。
(2)非相关子查询
子查询不包含外表的列,查询结果由内表决
原创力文档

文档评论(0)