leading--Oracle hint
SQL> explain plan for select rowid rid from
2 scott.emp e where e.empno >100 and e.empno < 1000 and e.deptno in (select deptno from scott.dept where dname like 'a%');
已解释。
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL, 'ADVANCED -PROJECTION'));
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1465018025 -----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 32 | 3 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | | | | |
| 2 | NESTED LOOPS | | 1 | 32 | 3 (0)| 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 19 | 2 (0)| 00:00:01 |
|* 4 | INDEX RANGE SCAN | PK_EMP | 1 | | 1 (0)| 00:00:01 |
|* 5 | INDEX UNIQUE SCAN | PK_DEPT | 1 | | 0 (0)| 00:00:01 |
|* 6 | TABLE ACCESS BY INDEX ROWID | DEPT | 1 | 13 | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------- Query Block Name / Object Alias (identified by operation id):
------------------------------------------------------------- 1 - SEL$5DA710D3
3 - SEL$5DA710D3 / E@SEL$1
4 - SEL$5DA710D3 / E@SEL$1
5 - SEL$5DA710D3 / DEPT@SEL$2
6 - SEL$5DA710D3 / DEPT@SEL$2 Outline Data
------------- /*+
BEGIN_OUTLINE_DATA
NLJ_BATCHING(@"SEL$5DA710D3" "DEPT"@"SEL$2")
USE_NL(@"SEL$5DA710D3" "DEPT"@"SEL$2")
LEADING(@"SEL$5DA710D3" "E"@"SEL$1" "DEPT"@"SEL$2")
INDEX(@"SEL$5DA710D3" "DEPT"@"SEL$2" ("DEPT"."DEPTNO"))
INDEX_RS_ASC(@"SEL$5DA710D3" "E"@"SEL$1" ("EMP"."EMPNO"))
OUTLINE(@"SEL$2")
OUTLINE(@"SEL$1")
UNNEST(@"SEL$2")
OUTLINE_LEAF(@"SEL$5DA710D3")
ALL_ROWS
DB_VERSION('11.2.0.1')
OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
IGNORE_OPTIM_EMBEDDED_HINTS
END_OUTLINE_DATA
*/ Predicate Information (identified by operation id):
--------------------------------------------------- 4 - access("E"."EMPNO">100 AND "E"."EMPNO"<)
5 - access("E"."DEPTNO"="DEPTNO")
6 - filter("DNAME" LIKE 'a%')
已选择50行。
SQL> explain plan for select /*+leading(DEPT@SEL$2)*/rowid rid from
2 scott.emp e where e.empno >100 and e.empno < 1000 and e.deptno in (select deptno from scott.dept where dname like 'a%');
已解释。
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL, 'ADVANCED -PROJECTION'));
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 817787759 -----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 32 | 5 (20)| 00:00:01 |
| 1 | MERGE JOIN | | 1 | 32 | 5 (20)| 00:00:01 |
|* 2 | TABLE ACCESS BY INDEX ROWID | DEPT | 1 | 13 | 2 (0)| 00:00:01 |
| 3 | INDEX FULL SCAN | PK_DEPT | 4 | | 1 (0)| 00:00:01 |
|* 4 | SORT JOIN | | 1 | 19 | 3 (34)| 00:00:01 |
| 5 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 19 | 2 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | PK_EMP | 1 | | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------- Query Block Name / Object Alias (identified by operation id):
------------------------------------------------------------- 1 - SEL$5DA710D3
2 - SEL$5DA710D3 / DEPT@SEL$2
3 - SEL$5DA710D3 / DEPT@SEL$2
5 - SEL$5DA710D3 / E@SEL$1
6 - SEL$5DA710D3 / E@SEL$1 Outline Data
------------- /*+
BEGIN_OUTLINE_DATA
USE_MERGE(@"SEL$5DA710D3" "E"@"SEL$1")
LEADING(@"SEL$5DA710D3" "DEPT"@"SEL$2" "E"@"SEL$1")
INDEX_RS_ASC(@"SEL$5DA710D3" "E"@"SEL$1" ("EMP"."EMPNO"))
INDEX(@"SEL$5DA710D3" "DEPT"@"SEL$2" ("DEPT"."DEPTNO"))
OUTLINE(@"SEL$2")
OUTLINE(@"SEL$1")
UNNEST(@"SEL$2")
OUTLINE_LEAF(@"SEL$5DA710D3")
ALL_ROWS
DB_VERSION('11.2.0.1')
OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
IGNORE_OPTIM_EMBEDDED_HINTS
END_OUTLINE_DATA
*/ Predicate Information (identified by operation id):
--------------------------------------------------- 2 - filter("DNAME" LIKE 'a%')
4 - access("E"."DEPTNO"="DEPTNO")
filter("E"."DEPTNO"="DEPTNO")
6 - access("E"."EMPNO">100 AND "E"."EMPNO"<) 已选择50行。
SQL> explain plan for select /*+leading(DEPT)*/rowid rid from
2 scott.emp e where e.empno >100 and e.empno < 1000 and e.deptno in (select deptno from scott.dept where dname like 'a%');
已解释。
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL, 'ADVANCED -PROJECTION'));
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 817787759 -----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 32 | 5 (20)| 00:00:01 |
| 1 | MERGE JOIN | | 1 | 32 | 5 (20)| 00:00:01 |
|* 2 | TABLE ACCESS BY INDEX ROWID | DEPT | 1 | 13 | 2 (0)| 00:00:01 |
| 3 | INDEX FULL SCAN | PK_DEPT | 4 | | 1 (0)| 00:00:01 |
|* 4 | SORT JOIN | | 1 | 19 | 3 (34)| 00:00:01 |
| 5 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 19 | 2 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | PK_EMP | 1 | | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------- Query Block Name / Object Alias (identified by operation id):
------------------------------------------------------------- 1 - SEL$5DA710D3
2 - SEL$5DA710D3 / DEPT@SEL$2
3 - SEL$5DA710D3 / DEPT@SEL$2
5 - SEL$5DA710D3 / E@SEL$1
6 - SEL$5DA710D3 / E@SEL$1 Outline Data
------------- /*+
BEGIN_OUTLINE_DATA
USE_MERGE(@"SEL$5DA710D3" "E"@"SEL$1")
LEADING(@"SEL$5DA710D3" "DEPT"@"SEL$2" "E"@"SEL$1")
INDEX_RS_ASC(@"SEL$5DA710D3" "E"@"SEL$1" ("EMP"."EMPNO"))
INDEX(@"SEL$5DA710D3" "DEPT"@"SEL$2" ("DEPT"."DEPTNO"))
OUTLINE(@"SEL$2")
OUTLINE(@"SEL$1")
UNNEST(@"SEL$2")
OUTLINE_LEAF(@"SEL$5DA710D3")
ALL_ROWS
DB_VERSION('11.2.0.1')
OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
IGNORE_OPTIM_EMBEDDED_HINTS
END_OUTLINE_DATA
*/ Predicate Information (identified by operation id):
--------------------------------------------------- 2 - filter("DNAME" LIKE 'a%')
4 - access("E"."DEPTNO"="DEPTNO")
filter("E"."DEPTNO"="DEPTNO")
6 - access("E"."EMPNO">100 AND "E"."EMPNO"<) 已选择50行。
leading--Oracle hint的更多相关文章
- SWAP_JOIN_INPUTS Oracle Hint(处理hash join强制大表(segment_size大)作为被驱动表)
SWAP_JOIN_INPUTS Oracle Hint(处理hash join强制大表(segment_size大)作为被驱动表) swap_join_inputs是针对哈希连接的hint,它的含义 ...
- SQL优化过程中常见Oracle HINT
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量, ...
- Oracle hint手动优化
例子 select/*+FULL(fortest)*/ * from fortest where id = 2000000 //使用0.70s时间 select* from fortest where ...
- 品味性能之道<十>:Oracle Hint
Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式. 因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Ora ...
- Oracle Hint 详解
Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式. 因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Ora ...
- oracle --hint总结
得到一条sql语句执行计划的常用方法:1.explain plan 命令 2.DBMS_XPLAN包3.sqlplus中的AUTOTRACE开关4.10046事件5.10053事件6.AWR报告或者 ...
- 【DBAplus】SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势
原创 2016-09-12 韩锋 作者介绍 韩锋,宜信技术研发中心数据库架构师.精通多种关系型数据库,曾任职于当当网.TOM在线等公司,曾任多家公司首席DBA.数据库架构师等职,多年一线数据库架构. ...
- SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势
一.提示(Hint)概述 1为什么引入Hint? Hint是Oracle数据库中很有特色的一个功能,是很多DBA优化中经常采用的一个手段.那为什么Oracle会考虑引入优化器呢?基于代价的优化器是很聪 ...
- 常见Oracle HINT的用法
1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_I ...
- Oracle Hint 用法
正确的语法是: select /*+ index(x idx_t) */ * from t x where x.object_id=123 /*+ */ 和注释很像,比注释多了一个“+”,这就是 ...
随机推荐
- DataTable自身查询方法
这里说到的查询有两种. 1.DataTable.Select 2.DataTable.Rows.Find a>先建立一个DataTable供使用吧. /// <summary> ...
- centos 6.8 解决ibus输入法不正常显示的问题
今天发现 ibus输入法打字时不正常显示,如下图
- Android侧滑菜单和轮播图之滑动冲突
接手一个项目,有一个问题需要修改:轮播图不能手动滑动,手动滑动轮播图只会触发侧滑菜单. 猜测:viewpager控件(轮播图)的触摸事件被SlidingMenu控件(侧滑菜单,非第三方项目,乃是上个开 ...
- Android 开发工具类 14_ JsonTools
天气 JSON 数据解析 package com.example.weather_json.tools; import java.util.ArrayList; import java.util.Li ...
- 【转】Spark:一个高效的分布式计算系统
原文地址:http://tech.uc.cn/?p=2116 概述 什么是Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架, ...
- protocol buffers生成go代码原理
本文描述了protocol buffers使用.proto文件生成pb.go文件的过程 编译器 编译器需要插件来编译环境,使用如下方式安装插件:go get github.com/golang/pro ...
- Redis笔记(四):Redis事务支持
Redis 事务 Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 批量操作在发送 EXEC 命令前被放入队列缓存. 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其 ...
- Koa2实用入门
koa2已发布了一段时间,可以考虑入手,参见Node.js最新Web技术栈(2016年4月) 本文主要是koa 2的文档解读和runkoa介绍,让大家对koa 2有一个更简单直接的理解 一.依赖Nod ...
- 学习笔记---log4j的使用与配置
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式. 日志信息的优先级从高到低有OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL,分别用来 ...
- jsp页面查询的数据导出到excel
java导入导出excel操作(jxl) jxl.jar 包下载地址:http://www.andykhan.com/jexcelapi/真实下载地址:http://www.andykhan.com/ ...