Oracle Hint(提示)之ORDERED
  IE5LYMWlmdvL 2023年11月26日 18 0

ORDERED提示的作用和使用方法

ORDERED提示是指导优化器,按照FROM子句中表出现的次序来访问。

ORDERED提示的使用语法如下图所示:

Oracle Hint(提示)之ORDERED_hint

下面,我们通过实验来说明施加该提示时,优化器是如何选择表的访问次序的。

测试验证

首先,我们创建两个测试表TAB1、TAB2:

Oracle Hint(提示)之ORDERED_sql优化_02

并在其上收集统计信息,如下图所示:

Oracle Hint(提示)之ORDERED_hint_03

然后我们在其这两个表上执行如下的查询:

select count(*) 
from tab1,tab2
where tab1.object_id=tab2.object_id;

当我们什么提示都不加时,其执行计划如下:

Oracle Hint(提示)之ORDERED_ordered_04

如上图所示,此时是先访问TAB1表,然后才是TAB2表。

下面,我们使用ORDERED提示,让优化器考虑先访问TAB2表。但如前所述,ORDERED提示是指定优化器,按照FROM子句中表出现的次序来访问表。所以,我们需要把TAB2表写到FROM子句中靠前的位置,如下图所示:

Oracle Hint(提示)之ORDERED_ordered_05

如果我们不加ORDERED提示,则表访问的次序,并不是一定接照FROM子句中表出现的次序来访问的。如下图所示:

Oracle Hint(提示)之ORDERED_sql优化_06

但是,ORDERED提示,并不会像LEADING提示那样,写多个会导致所有LEADING提示被忽略。如下测试所示:

Oracle Hint(提示)之ORDERED_oracle_07

知识总结

1、ORDERED提示是指导优化器,按FROM子句中表出现的次序来访问。先出现的表,先访问。

参考文档

《Oracle® Database SQL Language Reference》

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月26日 0

暂无评论

推荐阅读
IE5LYMWlmdvL