oracle
1.建议建立一个以paytime,id,cost的复合索引。光是在paytime上建立索引会产生很多随机读。
2.就算建立了索引,如果你查询的数据量很大的话,也不一定会用索引,有时候全表扫描速度比索引扫描要快!(官方文档上好像说的是大概10%,就是如果你查询的数据占到总数据的10%,全表扫描比索引快)。
3.建复合索引语句如下(建议去看看官方文档,建索引有很多参数,而且每个版本的ORACLE也不一定一样):
CREATE INDEXTEST_indexONCONSUME_test
(PAYTIME,ID, COST)
LOGGING
TABLESPACE INDEX_A
NOPARALLEL;
最后说一句,ORACLE好像没有“强制索引”的说法的!

追问:
我记得有强制索引啊,就是/*+这里面写的*/,但是我不知道语法
追答:
你指的是用hints去提示你查询语句去使用哪个索引。
SELECT /*+INDEX(TABLE INDEX_NAME)*/ FROM TABLE
可以提示ORACLE 去使用TABLE 表上已经建好的INDEX_NAME。ORACLE 官方文档上说过,这并不是强制的,仅仅是提示,优化器可能会选择这个索引,也可能不选择。不过绝大部分情况会按照提示的去做! hints是oracle提供的一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。我们可以用hints来实现: 1) 使用的优化器的类型 2) 基于代价的优化器的优化目标,是all_rows还是first_rows。 3) 表的访问路径,是全表扫描,还是索引扫描,还是直接利用rowid。 4) 表之间的连接类型 5) 表之间的连接顺序 6) 语句的并行程度 2、HINT可以基于以下规则产生作用 表连接的顺序、表连接的方法、访问路径、并行度 3、HINT应用范围 dml语句 查询语句 4、语法
{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */
or
{DELETE|INSERT|SELECT|UPDATE} --+ hint [text] [hint[text]]...
如果语(句)法不对,则ORACLE会自动忽略所写的HINT,不报错 例子:

在一些场景下,可能ORACLE不会自动走索引,这时候,如果对业务清晰,可以尝试使用强制索引,测试查询语句的性能。

以EMP表为例:

先在EMP表中建立唯一索引,如图。

普通搜索:

SELECT * FROM EMP T

查看执行计划:

可以看到,是走的全表扫描。

使用强制索引,在SELECT 后面加上/*.......*/ 中间加上索引的属性,代码如下:

SELECT /*+index(t pk_emp)*/* FROM EMP T   

--强制索引,/*.....*/第一个星星后不能有空格,里边内容结构为:加号index(表名 空格 索引名)。
--如果表用了别名,注释里的表也要使用别名。

可以看到,这是走的是索引PK_EMP。

oracle hint 强制索引(转)的更多相关文章

  1. ORACLE的强制索引

    在一些场景下,可能ORACLE不会自动走索引,这时候,如果对业务清晰,可以尝试使用强制索引,测试查询语句的性能. 以EMP表为例: 先在EMP表中建立唯一索引,如图. 普通搜索: SELECT * F ...

  2. SWAP_JOIN_INPUTS Oracle Hint(处理hash join强制大表(segment_size大)作为被驱动表)

    SWAP_JOIN_INPUTS Oracle Hint(处理hash join强制大表(segment_size大)作为被驱动表) swap_join_inputs是针对哈希连接的hint,它的含义 ...

  3. ORACLE 强制索引

    在一些场景下,可能ORACLE不会自动走索引,这时候,如果对业务清晰,可以尝试使用强制索引. 使用强制索引,在SELECT 后面加上/*.......*/ 中间加上索引的属性,代码如下: SELECT ...

  4. ORACLE 查询不走索引的原因分析,解决办法通过强制索引或动态执行SQL语句提高查询速度

    (一)索引失效的原因分析: <>或者单独的>,<,(有时会用到,有时不会) 有时间范围查询:oracle 时间条件值范围越大就不走索引 like "%_" ...

  5. MySQL force Index 强制索引概述

    以下的文章主要介绍的是MySQL force Index  强制索引,以及其他的强制操作,其优先操作的具体操作步骤如下:我们以MySQL中常用的hint来进行详细的解析,如果你是经常使用Oracle的 ...

  6. Mysql_mysql force Index 强制索引

    其他强制操作,优先操作如下: mysql常用的hint 对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法.同样,在mysql里,也有类似的h ...

  7. ORACLE不可见索引(Invisible Indexes)

    不可见索引概念 不可见索引(Invisible Index)是ORACLE 11g引入的新特性.不可见索引是会被优化器忽略的不可见索引,除非在会话或系统级别上将OPTIMIZER_USE_INVISI ...

  8. oracle查询不走索引的一些情况(索引失效)

    Oracle建立索引的目的是为了避免全表扫描,提高查询的效率. 但是有些情况下发现即使建立了索引,但是写出来的查询还是很慢,然后会发现是索引失效导致的,所以需要了解一下那些情况会导致索引失效,即查询不 ...

  9. SQL优化过程中常见Oracle HINT

    在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量, ...

随机推荐

  1. python convert csv to xlsx

    搬运:http://stackoverflow.com/questions/17684610/python-convert-csv-to-xlsx import os import glob impo ...

  2. 由hbase.client.scanner.caching参数引发的血案(转)

    转自:http://blog.csdn.net/rzhzhz/article/details/7536285 环境描述 Hadoop 0.20.203.0Hbase 0.90.3Hive 0.80.1 ...

  3. webpack (1)

    node_modules/.bin/webpack 用webpack 打包 因为我们没有全局安装webpack 所以要用到这条命令 创建html npm install --save-dev html ...

  4. UVA1411 Ants

    想出的一道题竟然是原题QAQ 非常有趣的一个题 根据三角形两边之和大于第三边 所以相交的线段一定是比不相交的线段要长的 所以直接二分图构图 最小费用最大流即可 (我不管我不管我要把这个出到NOIP膜你 ...

  5. 17.Priority优先级

    /** * 优先级 */ public class PriorityDemo { public static class HightPriority extends Thread{ static in ...

  6. 阿里云异构计算团队亮相英伟达2018 GTC大会

    摘要: 首届云原生计算国际会议(KubeCon + CloudNativeCon,China,2018)在上海举办,弹性计算研究员伯瑜介绍了基于虚拟化.容器化编排技术的云计算操作系统PouchCont ...

  7. BlueStore-先进的用户态文件系统《一》

    https://zhuanlan.zhihu.com/p/45084771 分布式存储系统通过将数据分散到多台机器上来充分利用多台机器的资源提高系统的存储能力,每台机器上的数据存放都需要本地的单机存储 ...

  8. 第六周-Scrum Meeting

    第一部分ScrumMeeting 每个人的工作: 成员 任务 ISSUE链接 本周已完成的工作 本周计划完成的工作 工作中遇到的困难 李卓峻 负责商品信息页面的界面设计与功能实现 https://gi ...

  9. 有关于css的四种布局

    四种布局 (1).左右两侧,左侧固定宽度200px, 右侧自适应占满. (2).左中右三列,左右个200px固定,中间自适应占满. (3).上中下三行,头部200px高,底部200px高,中间自适应占 ...

  10. PHP基础知识总结(四) 留言板例子 知识应用

    1.留言板显示页面:note.php <?php $host = "127.0.0.1"; $user = "root"; $pwd = "zs ...