为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:dm8 【操作系统】:linux 【CPU】: 【问题描述】*:这个是in查了400多秒,这个是=查了不到1秒,两者差距就只有这段里面xrca004=/xrca004 in,子查询中的结果只有一条,请问是什么原因导致的呢?可是不能保证子查询中只有一条数据,如果是多条还是只能用in,这样的查询可否继续优化?
做个试验,在这个查询最开始的SELECT后加个HINT注解,看看是否有效
SELECT /*+ ENABLE_RQ_TO_NONREF_SPL(4)*/ ..... --原有内容
或者,再试验一下,不加HINT,只是在 IN 子查询的条件最后加个新条件
.... AND pmabsite = 'W02' AND ROWNUM > 0 --这里新增个条件 ) ....
不知道是否有效,你测试下看看
还是看看 执行计划吧,看看有什么不同
做个试验,在这个查询最开始的SELECT后加个HINT注解,看看是否有效
SELECT /*+ ENABLE_RQ_TO_NONREF_SPL(4)*/ ..... --原有内容
或者,再试验一下,不加HINT,只是在 IN 子查询的条件最后加个新条件
.... AND pmabsite = 'W02' AND ROWNUM > 0 --这里新增个条件 ) ....
不知道是否有效,你测试下看看