ORDERED提示强制Oracle按照From子句中表出现的顺序进行表连接。
通过ORDERED提示,可以避免CBO SQL解析过程中的表连接评估,从而避免Oracle产生错误的执行计划,或者强制Oracle按照我们指定的方式执行。在很多时候,当我们清楚地了解数据结构和数据分布之后,就可以通过ORDERED提示来提高SQL性能。
如下例:
1 SQL> SELECT /*+ ordered */ COUNT (*)
2 2 FROM t_middle, t_small, t_max
3 3 WHERE t_small.object_id = t_middle.object_id
4 4 AND t_middle.object_id = t_max.object_id;
2 2 FROM t_middle, t_small, t_max
3 3 WHERE t_small.object_id = t_middle.object_id
4 4 AND t_middle.object_id = t_max.object_id;