我们有一个外部配置单元表,其分区列的类型为varchar2。此表左外连接到另一个表,其中分区字段处于连接条件中。
在下面的查询中,表b中的列b2是varchar2类型的分区列,表a中的a2只有1个值,也是varchar2类型。
SELECT a.a1, b.b1
FROM a LEFT OUTER JOIN b ON (a.a2=b.b2)
WHERE a.a3='2016-01-31'
当我在上面的查询中发出EXPLAIN PLAN时,我看到表b下的所有分区。如果映射器读取表b时它只等于a2中的值,我怎么才能从表b中获取分区?
答案 0 :(得分:0)
选择查询按以下顺序执行/计划。
FROM
ON
JOIN
WHERE
GROUP BY
WITH CUBE or WITH ROLLUP
HAVING
SELECT
DISTINCT
ORDER BY
TOP
解释:
查询已加入,并且按照规则首先加入条件将被评估然后where子句因此你看到 PLAN
中表B的所有分区