ORACLE复合索引使用 注意事项
http://blog.sina.com.cn/s/blog_456c25570100i3za.html
复合索引的第一列一定要出现在WHERE子句中。
一.like "%_" 百分号在前.
二.WHERE中单独引用复合索引里第一位置的索引列,并且SELECT、GROUP BY等子句中包含非复合索引列
例句:
用不到索引
SELECT
CORP.BATCHCODE, CORP.CLITNO, CORP.LOANBLAN
FROM VI_CORPCLIT_INFO CORP
WHERE CORP.BATCHCODE = '200910'
用到索引
SELECT
CORP.BATCHCODE, CORP.CLITNO
FROM VI_CORPCLIT_INFO CORP
WHERE CORP.BATCHCODE = '200910'
三.字符型字段为数字时在where条件里不添加引号.
四.字符型字段||'',并且SELECT、GROUP BY等子句中包含非复合索引列。
用不到索引
SELECT
CORP.BATCHCODE, CORP.CLITNO, CORP.LOANBLAN
FROM VI_CORPCLIT_INFO CORP
WHERE CORP.CLITNO||'' = '200910'
用到索引
SELECT
CORP.BATCHCODE, CORP.CLITNO
FROM VI_CORPCLIT_INFO CORP
WHERE CORP.CLITNO||'' = '200910'
五.对索引列进行运算.需要建立函数索引。
用不到索引
SELECT
CORP.BATCHCODE, CORP.CLITNO, CORP.LOANBLAN
FROM VI_CORPCLIT_INFO CORP
WHERE substr(CORP.CLITNO,1) = '200910'
用到索引
SELECT
CORP.BATCHCODE, CORP.CLITNO
FROM VI_CORPCLIT_INFO CORP
WHERE substr(CORP.CLITNO,1) = '200910'
六。not in, not exist, <>
七。当变量采用的是times变量,而表的字段采用的是date变量时.或相反情况。
八。基于cost成本分析(oracle因为走全表成本会更小):查询小表,或者返回值大概在10%以上
九。有时都考虑到了但就是不走索引,drop了从建试试在
十。B-tree索引 is null不会走,is not null会走,位图索引 is null,is not null 都会走
ORACLE复合索引使用 注意事项相关推荐
- oracle复合索引的使用方法,ORACLE复合索引使用 注意事项
复合索引的第一列一定要出现在WHERE子句中. 一.like "%_" 百分号在前. 二.WHERE中单独引用复合索引里第一位置的索引列,并且SELECT.GROUP BY等子句中 ...
- oracle复合索引介绍(多字段索引)
首先,在大多数情况下,复合索引比单字段索引好.以税务系统的SB_ZSXX(申报类_征收信息表)为例,该表为税务系统最大的交易表.如果分别按纳税人识别号,税务机关代码,月份3个字段查询,每个字段在该表中 ...
- 索引和未索引执行计划的比较_详解Oracle复合索引+实例说明
复合索引 复合索引顾名思义,区别于单列索引,是由两个或多个列一起构成的索引.其在B树上的数据结构是什么样?如下图,是一个包含两列的复合索引. 如果你观察仔细,还会发现它的叶子节点是ASC递增排序的.现 ...
- 教你创建Oracle复合索引(精)
什么是复合索引? 复合索引顾名思义,区别于单列索引,是由两个或多个列一起构成的索引.其在B树上的数据结构是什么样?如下图,是一个包含两列的复合索引. 如果你观察仔细,还会发现它的叶子节点是ASC递增排 ...
- oracle 复合索引
转自https://www.csdn.net/gather_29/MtTaQg0sOTIyMC1ibG9n.html oracle通过复合索引优化查询及不走索引的8种情况 :https://www.c ...
- oracle复合索引列顺序,复合索引顺序选择性问题(一)
索引是我们经常选择的数据表检索优化方案之一.其中,复合索引是我们经常选择的策略.那么,构建索引列的顺序上,有何种差异和需要注意的方面呢?下面我们通过实验来进行说明. 实验环境说明 准备数据表和实验环境 ...
- oracle创建多字段索引吗,oracle复合索引介绍(多字段索引)
转: 首先,在大多数情况下,复合索引比单字段索引好.以税务系统的SB_ZSXX(申报类_征收信息表)为例,该表为税务系统最大的交易表.如果分别按纳税人识别号,税务机关代码,月份3个字段查询,每个字段在 ...
- oracle 复合索引原则,复合索引在什么情况下使用
http://topic.csdn.net/t/20060813/16/4946416.html 1.复合索引使用的目的是什么? :能形成索引覆盖,提高where语句的查询效率 2.一个复合索引是否可 ...
- oracle复合字段,复合索引 选择频繁的字段,还是选择选择性低的字段 放在前面?...
要在C1,C2两个字段建立复合所用,规则有:如果C1字段使用更频繁一些,那么复合索引的顺序应该是(C1,C2),可以使Oracle更容易用上该索引. 如果C1字段只有(1,2,3)三个离散值,C2字段 ...
最新文章
- MFC中滚动条slider和编辑框edit的联动
- 教学思路C#之入门一 认识简单的C#结构
- 乐山市计算机学校欺骗,据说这个学校很乱。
- Zookeeper节点详解
- VC++动态链接库(DLL)编程(二)--非MFC DLL
- 防止android应用的内存泄露
- python开发游戏脚本_Python开发游戏开服脚本
- [No00005A]word多文档合一
- Veeam backup job(3)
- caffe教程笔记《Solver》
- 强化学习(十一) Prioritized Replay DQN
- android和电脑共享文件,安卓手机怎么访问电脑共享文件
- ie主页被劫持怎么办 解决浏览器主页劫持方法
- js 身份证号码验证包含15位和18位
- 微机原理与接口技术:接口概述 详细笔记
- svn访问版本库时一直提示: please wait while the repository browser is initializing
- 【数据存储】从hashMap、mysql、redis、到分布式
- 2023,创客永不停歇
- 数模美赛论文模板(笔记)
- 【小甲鱼C语言】课后笔记第一章第三节——常量和宏定义
热门文章
- 10.2.2 选择器
- 小姐姐教我的 sklearn 逻辑回归
- LeetCode Algorithm 206. 反转链表
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— Arduino相关设置
- 【Linux】一步一步学Linux——route命令(169)
- 【Linux】一步一步学Linux——pwd命令(19)
- 【Android】Android Service的生命周期
- matlab搭建sdn,软件定义网络SDN简介和简单仿真实验
- php邮件发送tp,在Thinkphp3.2 中使用PHPMailer 发送邮件
- java stw_JVM STW里的no vm operation是怎么发生的