重庆思庄Oracle、Redhat认证学习论坛
标题:
oracle 中 /*+ full(表名)*/ 优化详解
[打印本页]
作者:
刘泽宇
时间:
2024-10-13 12:21
标题:
oracle 中 /*+ full(表名)*/ 优化详解
hint 关键字: /+ full(表名)/
一般来说,sql 优化时,尽量走 index,但不绝对
有时候,全表扫描的效率比索引高
实际应用:
当查询 sql 时间范围较长时
当 sql 中使用索引(执行计划),还是查询很慢时
说明:
表名
(1) 若表有 '别名',则是 '别名'
(2) 若表没有 '别名',则是 '表名' 全称
示例:
SELECT /*+ full(t)*/
*
FROM scott.emp t
WHERE t.empno >= 1
可能遇到的问题
别名为 “@SELxx”
SQL> select * from table(dbms_xplan.display_cursor(sql_id => 'bsdw1ur9qw6mv',cursor_child_no => 0,format => 'advanced'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID bsdw1ur9qw6mv, child number 0
-------------------------------------
SELECT * FROM scott.emp t WHERE t.empno >= 1
Plan hash value: 169057108
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 2 (100)|
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 14 | 532 | 2 (0)| 00:0
|* 2 | INDEX RANGE SCAN | PK_EMP | 14 | | 1 (0)| 00:0
--------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - SEL$1 / T@SEL$1
2 - SEL$1 / T@SEL$1
PLAN_TABLE_OUTPUT
————————————————
解释:
1. T : 表别名
2. @SETL$1 数据块别名
说明:我们一般只需要关注 '表别名' 即可。
'数据块别名' Oracle 系统自行维护
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2