为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】: 【操作系统】: 【CPU】: 【问题描述】*:子查询的平坦化 这句话怎么理解呢
应该是针对相关子查询的。传统的执行计划,相关子查询,关联父查询的查询结果或条件,外部父查询执行一次,子查询就执行一次,不停迭代出完整的结果集。执行效率低。
子查询平坦化,就是在执行计划里,根据关联条件,先计算出来一个临时表,再把这个临时表与父查询关联,相当于用集合的方式,替代了迭代的方式。从而减少了子查询的执行次数。
将子查询关联的主查询中的表先压入同子查询表做关联计算,然后把这个中间结果集回头再与主查询的表做关联输出。
子查询平坦化 并不是万能的优化,根据实际情况而定。 如果平坦化能减少中间结果集,则选有它,否则反而降低性能。
应该是针对相关子查询的。传统的执行计划,相关子查询,关联父查询的查询结果或条件,外部父查询执行一次,子查询就执行一次,不停迭代出完整的结果集。执行效率低。
子查询平坦化,就是在执行计划里,根据关联条件,先计算出来一个临时表,再把这个临时表与父查询关联,相当于用集合的方式,替代了迭代的方式。从而减少了子查询的执行次数。