oracle hint之hint_index_ffs,index_join

2023-10-27

oracle hint_index_ffs,index_join
index_ffs hint
1,对表用快速索引全扫描进行访问
2,经测,仅count可以使用index_ffs,而非count聚合函数好像不能使用index_ffs
SQL> explain plan for select /*+ index_ffs(t_test idx_t_test */  a from t_test;
已解释。
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2796558804
----------------------------------------------------------------------------
| Id  | Operation         | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |        |   999K|  4882K|   305   (2)| 00:00:04 |
|   1 |  TABLE ACCESS FULL| T_TEST |   999K|  4882K|   305   (2)| 00:00:04 |
----------------------------------------------------------------------------
已选择8行。
SQL> explain plan for select  /*+ index_ffs(t_test idx_t_test) */  count(a) from
 t_test;
已解释。
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 1936070979
--------------------------------------------------------------------------------
----
| Id  | Operation             | Name       | Rows  | Bytes | Cost (%CPU)| Time
   |
--------------------------------------------------------------------------------
----

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |            |     1 |     5 |   384   (2)| 00:00:
05 |
|   1 |  SORT AGGREGATE       |            |     1 |     5 |            |
   |
|   2 |   INDEX FAST FULL SCAN| IDX_T_TEST |   999K|  4882K|   384   (2)| 00:00:
05 |
--------------------------------------------------------------------------------
----
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
 
已选择9行。
SQL>

index_join
1,index_join会自动连接where条件多个索引列
2,index_join不像index_combile转化为位图方式访问表,它是直接以rowid访问
SQL> explain plan for select /*+index_join(t_test idx_t_test idx_t_b) */ a,b fro
m t_test where a=3 and b=1;
已解释。
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 4085113357
--------------------------------------------------------------------------------
-------
| Id  | Operation          | Name             | Rows  | Bytes | Cost (%CPU)| Tim
e     |
--------------------------------------------------------------------------------
-------

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |                  |     1 |     8 |   951   (1)| 00:
00:12 |
|*  1 |  VIEW              | index$_join$_001 |     1 |     8 |   951   (1)| 00:
00:12 |
|*  2 |   HASH JOIN        |                  |       |       |            |
      |
|*  3 |    INDEX RANGE SCAN| IDX_T_TEST       |     1 |     8 |     3   (0)| 00:
00:01 |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

|*  4 |    INDEX RANGE SCAN| IDX_T_B          |     1 |     8 |   948   (1)| 00:
00:12 |
--------------------------------------------------------------------------------
-------

Predicate Information (identified by operation id):
---------------------------------------------------

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
   1 - filter("A"=3 AND "B"=1)
   2 - access(ROWID=ROWID)
   3 - access("A"=3)
   4 - access("B"=1)
已选择19行。
SQL>
SQL> explain plan for select /*+index_join(t_test idx_t_test idx_t_b) */ a,b fro
m t_test where a=3 and b=1 and c=19;
已解释。
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2799059507
--------------------------------------------------------------------------------
--------
| Id  | Operation           | Name             | Rows  | Bytes | Cost (%CPU)| Ti
me     |
--------------------------------------------------------------------------------
--------

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |                  |     1 |     8 |   958   (1)| 00
:00:12 |
|*  1 |  VIEW               | index$_join$_001 |     1 |     8 |   958   (1)| 00
:00:12 |
|*  2 |   HASH JOIN         |                  |       |       |            |
       |
|*  3 |    HASH JOIN        |                  |       |       |            |
       |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

|*  4 |     INDEX RANGE SCAN| IDX_T_TEST       |     1 |     8 |     3   (0)| 00
:00:01 |
|*  5 |     INDEX RANGE SCAN| IDX_C            |     1 |     8 |     3   (0)| 00
:00:01 |
|*  6 |    INDEX RANGE SCAN | IDX_T_B          |     1 |     8 |   948   (1)| 00
:00:12 |
--------------------------------------------------------------------------------

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
--------

Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter("A"=3 AND "C"=19 AND "B"=1)
   2 - access(ROWID=ROWID)
   3 - access(ROWID=ROWID)
   4 - access("A"=3)
   5 - access("C"=19)
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
   6 - access("B"=1)
已选择23行。
SQL>
SQL> explain plan for select /*+index_join(t_test idx_t_test idx_t_b idx_c) */ a
,b from t_test where a=3 and b=1 and c=20;
已解释。
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2799059507
--------------------------------------------------------------------------------
--------
| Id  | Operation           | Name             | Rows  | Bytes | Cost (%CPU)| Ti
me     |
--------------------------------------------------------------------------------
--------

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |                  |     1 |     8 |   958   (1)| 00
:00:12 |
|*  1 |  VIEW               | index$_join$_001 |     1 |     8 |   958   (1)| 00
:00:12 |
|*  2 |   HASH JOIN         |                  |       |       |            |
       |
|*  3 |    HASH JOIN        |                  |       |       |            |
       |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

|*  4 |     INDEX RANGE SCAN| IDX_T_TEST       |     1 |     8 |     3   (0)| 00
:00:01 |
|*  5 |     INDEX RANGE SCAN| IDX_C            |     1 |     8 |     3   (0)| 00
:00:01 |
|*  6 |    INDEX RANGE SCAN | IDX_T_B          |     1 |     8 |   948   (1)| 00
:00:12 |
--------------------------------------------------------------------------------

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
--------

Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter("A"=3 AND "C"=20 AND "B"=1)
   2 - access(ROWID=ROWID)
   3 - access(ROWID=ROWID)
   4 - access("A"=3)
   5 - access("C"=20)
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
   6 - access("B"=1)
已选择23行。
SQL>
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-751318/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-751318/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle hint之hint_index_ffs,index_join 的相关文章

  • 预测数值型数据:回归

    本文传送机 用线性回归找到最佳拟合直线 局部加权线性回归 通过缩减系数来 理解 数据 岭回归 lasso 前向逐步回归 用线性回归找到最佳拟合直线 线性回归 优点 结果易于理解 计算上不复杂 缺点 对非线性的数据拟合不好 适用数据类型 数值
  • 使用WIFI连接新大陆云平台(基于RT_Thread操作系统)

    前言 使用RT Thread Studio 连接WIFI 首先我们需要配置WIFI 具体的配置参考上面这篇文章 下面将会讲述使用WIFI连接到新大陆云平台 相关的AT指令 1 设置WIFI为Station模式 AT CWMODE 1 2 重
  • 拜托!别再问我hashmap是否线程安全

    拜托 别再问我hashmap是否线程安全 一 糟糕的面试 面试官 小王 你说说HashMap的是线程安全的吗 小王 HashMap不安全 在多线程下 会出现线程安全问题 他兄弟HashTable 线程是安全的 但是出于性能考虑 我们往往会选

随机推荐

  • 刷脸支付商家更有针对性地与目标群体互动

    现在我们外出买东西付款 已经有了非常便捷的扫码支付功能 这个功能不仅是年轻人喜欢使用 就连中老年人也跟上的时代的步伐 许多超市 便利店已经菜市场 都能够看到二维码的身影 但是随着时代不断地进步 扫码付款这一新兴方式 接二连三地被曝出许多风险
  • 文本分类流程及可能遇到的问题

    文本分类整体流程及可能遇到的问题 文本分类是一个常见的任务 垃圾邮件分类 评论情感极性分析 舆情分析 新闻分类等等 在网上随便搜索都会出现满屏的解决方案和已有模型 在工作或学习中 接到一个分类任务 可能我们就直接套用已有的模型 方法开始尝试
  • VMWare 虚拟机Ubuntu 22-04系统无法联网,右上角网络图标消失,ifconfig无法获取网络ip

    今天2022年09月18日 一个悲伤的日子 一个大家不能忘记的日子 为了国家强盛 今天周日过来加个班 今天 在Ubuntu linux虚拟机中配置了一些东西 结果把网络搞没了 右上角图标也没了 搜了许多文章 又是重启网络的 重启网络报错 u
  • 智能工厂中,MES管理系统数据采集的方式有哪些

    在工业领域 制造企业的数字化转型正在如火如荼地进行 智能和工业互联网的应用也在加速推进 在这个过程中 工控系统软硬件发挥着关键作用 工控系统涵盖了可编程逻辑控制器 PLC 数据采集与监控系统 SCADA 和分布式控制系统 DCS PLC通常
  • Python 缓存库

    文章目录 缓存库 缓存库的类型 Python中有用的缓存库 Python中的Redis缓存库 Python中的lru cache库 Python中的其他缓存库 总结 缓存是一种可以存储数据以供快速访问的内存类型 它是一个小而快速的内存 用于
  • 图的邻接矩阵

    邻接矩阵 是表示顶点之间相邻关系的矩阵 设G V E 是一个图 其中V v1 v2 vn G的邻接矩阵是一个具有下列性质的n阶方阵 对无向图而言 邻接矩阵一定是对称的 而且主对角线一定为零 在此仅讨论无向简单图 副对角线不一定为0 有向图则
  • Python中enumerate用法详解

    enumerate的意思即为枚举 列举 一句话来说 enumerate的作用就是对可迭代的数据进行标号并将其里面的数据和标号一并打印出来 看一下enumerate的函数 描述 enumerate 函数用于将一个可遍历的数据对象 如列表 元组
  • ElasticSearch Python Client ReadTimeout

    ElasticSearch Python Client ReadTimeout ElasticSearch Python Client API Bulk操作时 当ElasticSearch服务端的性能不足时 Client可能会超时 打印类似
  • 链表—C语言链表中数据域是结构体该如何操作

    链表是数据结构中的首先接触到的 常规的链表数据域为int型 如果链表中数据域是一个结构体该如何操作呢 首先看一个例子 定义一个学生结构体 然后用单向链表保存学生信息 由scanf输入学生信息后形成链表 再打印出所有学生信息 include
  • shell编程之if判断

    目录 一 格式 1 格式1 2 格式2 3 格式3 二 注意 三 例子 1 判断两个数是否相等 2 判断两个数中的最大值 一 格式 1 格式1 if 判断条件 then 判断为true执行的代码 fi 2 格式2 if 判断条件 then
  • Java 的七种垃圾收集器

    了解 Java 中的内存管理 用 C 或 C 这样的编程语言写一个应用时 需要编写代码来销毁内存中不再需要的对象 当应用程序扩展得越来越复杂时 未使用对象被忽略释放的可能性就越大 这会导致内存泄露 最终内存耗尽 在某个时刻将没有更多的内存可
  • Qt串口通信接收数据不完整的解决方法

    在使用串口接收数据时 当数据量大的时候会出现数据接收不完整的情况 因为串口数据获取函数readAll 由readyRead 信号触发 但readyRead 信号在串口读到起始标志时立即发送 并不保证一定是当前所发数据的起始部分 因此串口通信
  • SpringBoot2.x 集成Activiti6.0

    任务要求 集成Activiti6 0 流程引擎开发环境 核心依赖pom文件如下
  • VIM列编辑

    有时候需要多行编辑 例如注释多行代码 或者取消注释 虽然有插件支持 但插件不能插入特殊的字符 此时可以借助vim的列编辑模式 可以允许同时编辑多行 具体的操作如下 在normal模式下按ctrl v进入列编辑模式 通过hjkl选中编辑的区域
  • Numpy数据类型对象(dtype)

    常用方法 记住引入numpy时要是用别名np 则所有的numpy字样都要替换 查询数值类型 gt gt gt type float dtype float64 查询字符代码 gt gt gt dtype f dtype float32 gt
  • 安装博途时一直提示重启电脑,如何操作?

    1 在安装博途时 一直要求重启电脑的提示 如下图所示 2 如果出现上图所以提示 需要进行如下操作 3 在电脑开始菜单里右击 选择运行 点击运行命令 会弹出如下图操作 4 删掉注册表的键值 如下图的位置 5 删掉上图所以键值后 再运行博途安装
  • 电子设计竞赛电源题(2)-检波与采样

    电赛中的电源题说好做也好做 说不好做也不好做 电源是一个危险的东西 硬件和软件稍有不慎可能就会炸板子炸芯片 在19年前的电赛电源题一般都是做开关电源逆变器之类的 但是这类题做的太多了 已经饱和了或者说现在的单纯的电源已经做的效率达到非常之高
  • UGUI中UI朝向某一个物体

    做一个上一剪头朝向下一箭头的效果 代码 Vector3 dir arrows i 1 transform position arrows i transform position dir z 0 dir Normalize arrows i
  • 如何解决技术难点

    1 可以从宏观方面处理 分解为小的demo 大处着眼 小处着手 2 分解为基本的技术 实现 3 切换一个电脑画图理解 画图有助于自己对整个流程分析 代码只是流程的实现 画图理解逻辑 保证自己有清晰的逻辑 清楚的思路和顺序 这点很重要 4 写
  • oracle hint之hint_index_ffs,index_join

    oracle hint index ffs index join index ffs hint 1 对表用快速索引全扫描进行访问 2 经测 仅count可以使用index ffs 而非count聚合函数好像不能使用index ffs SQL