ORDERED提示的作用和使用方法
ORDERED提示是指导优化器,按照FROM子句中表出现的次序来访问。
ORDERED提示的使用语法如下图所示:
下面,我们通过实验来说明施加该提示时,优化器是如何选择表的访问次序的。
测试验证
首先,我们创建两个测试表TAB1、TAB2:
并在其上收集统计信息,如下图所示:
然后我们在其这两个表上执行如下的查询:
select count(*)
from tab1,tab2
where tab1.object_id=tab2.object_id;
当我们什么提示都不加时,其执行计划如下:
如上图所示,此时是先访问TAB1表,然后才是TAB2表。
下面,我们使用ORDERED提示,让优化器考虑先访问TAB2表。但如前所述,ORDERED提示是指定优化器,按照FROM子句中表出现的次序来访问表。所以,我们需要把TAB2表写到FROM子句中靠前的位置,如下图所示:
如果我们不加ORDERED提示,则表访问的次序,并不是一定接照FROM子句中表出现的次序来访问的。如下图所示:
但是,ORDERED提示,并不会像LEADING提示那样,写多个会导致所有LEADING提示被忽略。如下测试所示:
知识总结
1、ORDERED提示是指导优化器,按FROM子句中表出现的次序来访问。先出现的表,先访问。
参考文档
《Oracle® Database SQL Language Reference》
标签:ORDERED,Hint,提示,次序,访问,所示,子句,Oracle From: https://blog.51cto.com/u_13482808/8561223