设为首页 加入收藏

TOP

Oracle中常见的Hint(七)
2017-03-30 14:17:24 】 浏览:1233
Tags:Oracle 常见 Hint
nbsp;
-------------------------------------------------------------------------------------------
| Id  | Operation          | Name  | Rows  | Bytes | Cost (%CPU)| Time  |
-------------------------------------------------------------------------------------------
|  0 | SELECT STATEMENT      |        |    10 |    80 | 2  (0)| 00:00:01 |
|*  1 |  TABLE ACCESS BY INDEX ROWID| EMP  |    10 |    80 | 2  (0)| 00:00:01 |
|*  2 |  INDEX RANGE SCAN      | IDX_EMP_MGR |    11 |    |  1  (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
......
scott@TEST>select /*+ index_join(emp) */ empno,mgr
  2    from emp
  3  where empno>7369 and mgr<7902;
 
12 rows selected.
 
 
Execution Plan
----------------------------------------------------------
Plan hash value: 3030719951
 
---------------------------------------------------------------------------------------
| Id  | Operation      | Name        | Rows  | Bytes | Cost (%CPU)| Time    |
---------------------------------------------------------------------------------------
|  0 | SELECT STATEMENT  |            |    10 |    80 |    3  (34)| 00:00:01 |
|*  1 |  VIEW        | index$_join$_001 |    10 |    80 |    3  (34)| 00:00:01 |
|*  2 |  HASH JOIN    |          |      |      |      |      |
|*  3 |    INDEX RANGE SCAN| IDX_EMP_MGR      |    10 |    80 |    2  (50)| 00:00:01 |
|*  4 |    INDEX RANGE SCAN| PK_EMP        |    10 |    80 |    2  (50)| 00:00:01 |
---------------------------------------------------------------------------------------
......


7、AND_EQUAL


AND_EQUAL是针对单个目标表的Hint,它的含义是让优化器对目标表上的多个目标索引执行INDEX MERGE操作。INDEX MERGE能成立的前提条件是目标SQL的where条件里出现了多个针对不同单列的等值条件,并且这些列上都有单键值的索引。另外,在Oracle数据库里,能够做INDEX MERGE的索引数量的最大值是5。


格式如下:


/*+ AND_EQUAL(目标表 目标索引1 目标索引2 …… 目标索引n)*/


使用范例:


 select /*+ and_equal(emp idx_emp_mgr idx_emp_dept) */ empno,mgr
  from emp
 where deptno=20 and mgr=7902;


看下面的实例:


 scott@TEST>select empno,mgr
  2    from emp
  3  where deptno=20 and mgr=7902;
 
 
Execution Plan
----------------------------------------------------------
Plan hash value: 2059184959
 
-------------------------------------------------------------------------------------------
| Id  | Operation          | Name  | Rows  | Bytes | Cost (%CPU)| Time  |
-------------------------------------------------------------------------------------------
|  0 | SELECT STATEMENT      |        |  1 |    11 |  2  (0)| 00:00:01 |
|*  1 |  TABLE ACCESS BY INDEX ROWID|

首页 上一页 4 5 6 7 8 9 10 下一页 尾页 7/12/12
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL MRG_MyISAM 引擎报错解决 下一篇MySQL 5.6.34配置文件详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目