Oracle 11g新特性invisible index(不可见的索引)[通俗易懂]

Oracle 11g新特性invisible index(不可见的索引)

大家好,又见面了,我是全栈君。

    假设一张表上有十几个索引,你有什么感受?显然会拖慢增、删、改的速度。不要指望开发者能建好索引。我的处理方法是先监控非常长的一段时间。看哪些索引没实用到,然后删除。

但删除以后,假设发现某一天实用,那又要又一次建,假设是大表。那就有些麻烦。如今11g提供一个新特性,不可见索引。能够建索引设置为不可见索引。CBO在评估运行计划的时候会忽略它,假设须要的时候。设置回来就可以。

    另一种用途,你在调试一条SQL语句,要建一个索引測试。而你不想影响其它的会话,用不可见索引正是时候。

SQL> drop table test purge;

SQL> create table test as select * from dba_objects;
SQL> create index ind_t_object_id on test(object_id);
SQL> exec dbms_stats.gather_table_stats(user,’test’,cascade => true);
SQL> set autotrace traceonly
SQL> select * from test where object_id = 10;
运行计划
———————————————————-
Plan hash value: 255872589
———————————————————————————————–
| Id  | Operation                   | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
———————————————————————————————–
|   0 | SELECT STATEMENT            |                 |     1 |   100 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| TEST            |     1 |   100 |     2   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | IND_T_OBJECT_ID |     1 |       |     1   (0)| 00:00:01 |
———————————————————————————————–
Predicate Information (identified by operation id):
—————————————————
   2 – access(“OBJECT_ID”=10)
统计信息
———————————————————-
          1  recursive calls
          0  db block gets
          4  consistent gets
          0  physical reads
          0  redo size
       1195  bytes sent via SQL*Net to client
        337  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

SQL> alter index ind_t_object_id invisible;
SQL> select * from test where object_id = 10;
运行计划
———————————————————-
Plan hash value: 1357081020
————————————————————————–
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
————————————————————————–
|   0 | SELECT STATEMENT  |      |     1 |   100 |   209   (1)| 00:00:03 |
|*  1 |  TABLE ACCESS FULL| TEST |     1 |   100 |   209   (1)| 00:00:03 |
————————————————————————–
Predicate Information (identified by operation id):
—————————————————
   1 – filter(“OBJECT_ID”=10)
统计信息
———————————————————-
        196  recursive calls
          0  db block gets
        567  consistent gets
          0  physical reads
          0  redo size
       1195  bytes sent via SQL*Net to client
        337  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          6  sorts (memory)
          0  sorts (disk)
          1  rows processed

SQL> select /*+ index(test ind_t_object_id)*/ * from test where object_id = 10;
运行计划
———————————————————-
Plan hash value: 1357081020
————————————————————————–
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
————————————————————————–
|   0 | SELECT STATEMENT  |      |     1 |   100 |   209   (1)| 00:00:03 |
|*  1 |  TABLE ACCESS FULL| TEST |     1 |   100 |   209   (1)| 00:00:03 |
————————————————————————–
Predicate Information (identified by operation id):
—————————————————
   1 – filter(“OBJECT_ID”=10)
统计信息
———————————————————-
          1  recursive calls
          0  db block gets
        544  consistent gets
          0  physical reads
          0  redo size
       1195  bytes sent via SQL*Net to client
        337  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

–让数据库看到不可见索引,能够通过改变一个參数
SQL> alter session set optimizer_use_invisible_indexes = true;
SQL> select * from test where object_id = 10;
运行计划
———————————————————-
Plan hash value: 255872589
———————————————————————————————–
| Id  | Operation                   | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
———————————————————————————————–
|   0 | SELECT STATEMENT            |                 |     1 |   100 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| TEST            |     1 |   100 |     2   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | IND_T_OBJECT_ID |     1 |       |     1   (0)| 00:00:01 |
———————————————————————————————–
Predicate Information (identified by operation id):
—————————————————
   2 – access(“OBJECT_ID”=10)
统计信息
———————————————————-
          1  recursive calls
          0  db block gets
          4  consistent gets
          0  physical reads
          0  redo size
       1195  bytes sent via SQL*Net to client
        337  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115714.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PS2有线手柄的SPI协议

    PS2有线手柄的SPI协议1.SPI模式与PS2采用的是SPIMODE3模式。并且使用低位在前方式收发数据。2.请求PS2按键数据想要向PS2请示数据要发送一个请求命令。请求命令如下所示:cmd_require[9]={0x01,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//数据按先低位后高位发送3.接收PS按键数据在发送请求命令的…

    2022年5月6日
  • Spring Cloud原理详解[通俗易懂]

    Spring Cloud原理详解[通俗易懂]概述毫无疑问,SpringCloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对SpringCloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈SpringCloud微服务架构的底层原理。实际上,SpringCloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖…

    2022年6月7日
  • weblogic的热部署「建议收藏」

    weblogic的热部署「建议收藏」1、为什么要热部署大家在进行web开发的时候,都希望自己修改的内容在不手动编译、不重启服务的时候立即生效,这样可以极大的方便开发和调试。这个就是我今天要讲的weblogic的热部署。一.Weblogic热部署相关配置项 Weblogic能实现热部署功能,而且有自己的热部署机制,一般的应用在Weblogic的控制台中有如下三个配置项: servlet-reload-check-secs resour…

    2022年5月21日
  • haproxy配置详解_核心交换机配置教程

    haproxy配置详解_核心交换机配置教程Linux Haproxy详细配置教程

    2022年4月20日
  • vmware linux安装教程_vmware10虚拟机安装教程

    vmware linux安装教程_vmware10虚拟机安装教程一、安装VMware下载地址(16pro):https://www.aliyundrive.com/s/FSktJJXsfa8安装:选一下安装地址,一直下一步即可。(可能会要求重启电脑,重启即可)二、安装Linux下载地址:CentOS-7.5提取码:486k接下来看图操作2.1新建虚拟机现在我们就相当于买电脑,先把电脑配置整好。什么cpu啊内存条啊硬盘啊什么乱七八糟的,先不着急装系统。这里看你装什么版本的Linux了,我装的是GenOS7.564位所以选的是Ge

    2022年10月8日
  • 独立IP与共享IP的区别

    独立IP与共享IP的区别

    2021年9月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号