为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】: 【操作系统】: 【CPU】: 【问题描述】*:请教这两个hint实现优化的原理是什么,能否举个例子
我的理解是这样的,不一定对,但是实际使用的过程中是有用的。 这个use_cvt_var类似于指定优先使用NL-index-join,对于右表是一个复杂子查询的情况比较适用。
SELECT * FROM T1 LEFT JOIN (SELECT A.C1,A.C2,B.* FROM A LEFT JOIN B ON A.C1=B.C1 WHERE A.C3=… )ZCX ON T1.C1=ZCX.C1
对于这个SQL来说,如果T1表和子查询(ZCX)的关联列C1也是ZCX内AB表的关联条件C1,可以过滤ZCX中很大一部分(95%以上)的数据,那么如果可以将T1的内容加进ZCX中进行计算就可以大幅减少ZCX的取值范围,降低工作量,相当于给右边的子查询增加了一个过滤条件。
我的理解是这样的,不一定对,但是实际使用的过程中是有用的。
这个use_cvt_var类似于指定优先使用NL-index-join,对于右表是一个复杂子查询的情况比较适用。
SELECT * FROM T1 LEFT JOIN (SELECT A.C1,A.C2,B.* FROM A LEFT JOIN B ON A.C1=B.C1 WHERE A.C3=… )ZCX ON T1.C1=ZCX.C1
对于这个SQL来说,如果T1表和子查询(ZCX)的关联列C1也是ZCX内AB表的关联条件C1,可以过滤ZCX中很大一部分(95%以上)的数据,那么如果可以将T1的内容加进ZCX中进行计算就可以大幅减少ZCX的取值范围,降低工作量,相当于给右边的子查询增加了一个过滤条件。