hash_join可以通过swap_join_inputs来强制指定build表(或者驱动表),no_swap_join_inputs来强制 指定prob表(探查表,或者说被驱动表) 配合leading或者ordered可以控制多表之前的连接顺序 ----------------创建4个测试表 create table t1 as select * from dba_objects; create table t2 as select * from dba_objects; create table t3 as select * from dba_objects; create table t4 as select * from dba_objects; /* Leading 控制表的关联顺序为T2,T3,T1,T4.先t2,t3做jion,USE_HASH指定表的连接方式, 然后结果集与T1进行关联,通过SWAP_JOIN_INPUTS来指定T1表作为(T2,T3 Hash Join结果集)关联的驱动表。 然后结果集与T4进行关联,通过NO_SWAP_JOIN_INPUTS来指定T4作为探查表(或者说被驱动表) */ SELECT /*+ Leading(T2,T3,T1,T4) USE_HASH(T3) USE_HASH(T1) SWAP_JOIN_INPUTS(T1) USE_HASH(T4) NO_SWAP_JOIN_INPUTS(T4) */ * FROM T1,T2,T3,T4 WHERE T1.OBJECT_ID = T2.OBJECT_ID AND T2.OBJECT_NAME = T3.OBJECT_NAME AND T3.OWNER = T4.OWNER AND T4.OWNER = 'MYDB'; 执行计划 ---------------------------------------------------------- Plan hash value: 3177457315 ------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | ------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 2284 | 1846K| | 1616 (1)| 00:00:20 | |* 1 | HASH JOIN | | 2284 | 1846K| | 1616 (1)| 00:00:20 | |* 2 | HASH JOIN | | 299 | 181K| 7656K| 1424 (1)| 00:00:18 | | 3 | TABLE ACCESS FULL | T1 | 35780 | 7232K| | 192 (2)| 00:00:03 | |* 4 | HASH JOIN | | 375 | 151K| 9584K| 851 (1)| 00:00:11 | | 5 | TABLE ACCESS FULL| T2 | 44802 | 9056K| | 193 (2)| 00:00:03 | |* 6 | TABLE ACCESS FULL| T3 | 8 | 1656 | | 191 (1)| 00:00:03 | |* 7 | TABLE ACCESS FULL | T4 | 8 | 1656 | | 192 (2)| 00:00:03 | ------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - access("T3"."OWNER"="T4"."OWNER") 2 - access("T1"."OBJECT_ID"="T2"."OBJECT_ID") 4 - access("T2"."OBJECT_NAME"="T3"."OBJECT_NAME") 6 - filter("T3"."OWNER"='MYDB') 7 - filter("T4"."OWNER"='MYDB')
相关推荐
oracle HINTS用法,自己平时整理的一些关于ORACLE HINTS的用法
Oracle的hints调整机制介绍 Oracle的hints调整机制介绍 Oracle的hints调整机制介绍
oracle hints的详细介绍,包括各种优化算法等。
Oracle Hints 用法大全,对于优化 SQL 很有帮助!
oracle sql 暗示 描述了oracle sql 语句的所有暗示
解析Oracle Hints.解析Oracle Hints.
hints 使用的好的話很好用。在进行sql执行过程中,由于有时候系统自动优化的方式并不是最优的。需要我们手工添加hint来提高查询效率。
Oracle中关于hints的语义及使用情况的介绍。
通过这种方式产生我们想要的执行计划的这些HINTS,ORACLE可以存储这些HINTS,我们称之为OUTLINES。通过STORE OUTLINES可以使得我们拥有以后产生相同执行计划的能力,也就是使我们拥有了稳定执行计划的能力。
Oracle SQL Hints比较详细的一个中文手册,便于使用时查询
sql error can be handled
Hints优化.pdf
hints是oracle提供的一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。...表连接的顺序、表连接的方法、访问路径、并行度 3、HINT应用范围 dml语句 查询语句 4、语法 {DELET
在SQL语句优化过程中,经常会用到hint,下面我们来介绍一下在SQL优化过程中常见Oracle中"HINT"的30个用法
Spec for Extended Window Manager Hints. version 1.4 draft2
101 Helpful Hints for IELTS
1.21 用表连接替换EXISTS 13 1.22 用EXISTS替换DISTINCT 13 1.23 识别’低效执行’的SQL语句 14 1.24 用索引提高效率 14 1.25 索引的操作 15 1.26 多个平等的索引 16 1.27 等式比较和范围比较 17 1.28 不明确的索引...
maven-hints-3.1.4-sources.jar