重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 361|回复: 0
打印 上一主题 下一主题

[Oracle] oracle 中 /*+ full(表名)*/ 优化详解

[复制链接]
跳转到指定楼层
楼主
发表于 2024-10-13 12:21:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 系统自行维护

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-12-21 22:14 , Processed in 0.094121 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表