Oracle unusable index 与unvisible index
1 可见性
索引的可见性(visibility)指的是该索引是否对CBO优化器可见,即CBO优化器在生成执行计划的时候是否考虑该索引,可以看作是索引的一个属性。如果一个索引可见性属性为:invisible. 默认情况下CBO优化器生成执行计划的时候,不再考虑该索引,仅此而已。与可见索引一样,执行DML操作时,数据库会相应维护索引的数据。但是对于local 索引,我们不能单独为某个分区 设置不可见属性,只能对整个索引设置不可见属性。
- 设置索引可见性 不可见属性,可以在创建索引时指定,也可以后期调整。
-- 创建索引时指定不可见属性
create index index_name on table_name(column_list) invisible;
-- 后期调整可见性
alter index index_name invisible;
alter index index_name visible; - 相关参数 optimizer_use_invisible_indexes 此参数可以控制优化器生成执行计划时,是否考虑使用invisible index. 参数值为bool类型,当设置为true时,CBO会考虑使用invisible index. 默认为false. 此参数可以在会话或者系统全局或者实例级别进行设置。
SQL> select isses_modifiable,issys_modifiable,isinstance_modifiable from v$parameter where name='optimizer_use_invisible_indexes' ISSES ISSYS_MOD ISINS
----- --------- -----
TRUE IMMEDIATE TRUE
alter session set optimizer_use_invisible_indexes=true;
alter system set optimizer_use_invisible_indexes=true sid='*' scope=both; - 作用 在进行SQL优化时,不明确一个索引的创建或者删除对系统是否有影响,此时,我们可以先将索引设置为inbisible状态,然后,进行测试观察,如果与预期一致,再将索引设置主visible,或者删除。 不可见索引,是对于我们预期的一种难途径。
2 可用性
索引可用性(usable),正常情况下,索引都是可用的。当索引不可用(unusable)时, Oracle 内部会把该索引元数据(即创建语句包含的基本信息)与真实物理数据之间的对应关系撕裂,相关数据块可被重用。索引段是否已创建 (dba_indexes.segment_created)这一属性,会变为no(正常情况下,应为yes). unusable索引,想要被重新使用,只有一种方法: rebuild. 当然还可以先drop 再create.
- 一般情况下,CBO不考虑使用unusable状态的索引,包含分区表。
- 当索引不可用时,Oracle 清除索引数据,并且不再维护
- 本地索引中,可以设置某个分区的索引为unusable。
- 相关参数 skip_unusable_indexes
参数作用 控制对unusable 的非唯一索引,dml操作时是否维护索引数据 参数值 true | false 当参数设置为true时(默认),oracle对索引数据的维护及CBO优化器都不会考虑该索引。 当参数设置为false时,DML操作及CBO生成执行计划时都会考虑该索引。一旦与unusable索引相关的操作都会失败。会话报错退出。
- note
- 如果是唯一索引,DML时,oracle都会去校验索引可用性,如果索引不可用,就不能保证数据唯一性。
Oracle unusable index 与unvisible index的更多相关文章
- JQ first-child与:first的区别以及nth-child(index)与eq(index)的区别
1.first-child和:first区别 first-child 是指选取每个父元素的第一个子元素 如$("div:first-child")指每个父级里的第一个div孩子 ...
- Index Seek和Index Scan的区别
Index Seek是Sql Server执行查询语句时利用建立的索引进行查找,索引是B树结构,Sql Server先查找索引树的根节点,一级一级向下查找,在查找到相应叶子节点后,取出叶子节点的数据. ...
- Neo4j 两种索引Legacy Index与Schema Index区别
Legacy Indexes 在Neo4j 2.0版本之前,Legacy index被称作indexes.这个索引是通过外部图存储在外的Lucene实现,允许“节点”和“联系”以key:value键值 ...
- PostgreSQL index types and index bloating
warehouse_db=# create table item (item_id integer not null,item_name text,item_price numeric,item_da ...
- 14.4.3 Adaptive Hash Index 自适应hash index
14.4.3 Adaptive Hash Index 自适应hash index 自适应hash index(AHI) 让InnoDB 执行更像内存数据库在系统使用合适的负载组合和足够的内存用于Buf ...
- index seek与index scan
原文地址:http://blog.csdn.net/pumaadamsjack/article/details/6597357 低效Index Scan(索引扫描):就全扫描索引(包括根页,中间页和叶 ...
- MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析
关于如何理解MySQL执行计划中Extra列的Using where.Using Index.Using index condition,Using index,Using where这四者的区别 ...
- mysql 索引查询 、创建 create index 与 add index 的区别
1.索引查询 ------TABLE_SCHEMA 库名:TABLE 表名 ------AND UPPER(INDEX_NAME) != 'PRIMARY' 只查询索引,不需要主键 SELECT ...
- [Partition][Index]对于Partition表而言,是否Global Index 和 Local Index 可以针对同一个字段建立?
对于Partition表而言,是否Global Index 和 Local Index 可以针对同一个字段建立? 实验证明,对单独的列而言,要么建立 Global Index, 要么建立 Local ...
随机推荐
- 关于vue2.0 cnpm 镜像安装
前言:这几天安装vue环境一直报错,愁死我了,踩了好多坑,以前学的时候也安装成功了,后来很忙然后一直没顾上学vue,这么最近要学这个 在安装环境中平凡报错特此记笔记如下: 1.首先去下载node.js ...
- 迅为-ARM嵌入式开发一体化工业9.7寸屏幕 平板式智能触控屏
产品名称:迅为9.7寸IPS高清屏幕 适用于:[iTOP-4412精英版][iTOP-4412全能版][iTOP-4418开发板][迅为-iMX6开发板] 分辨率:1024*768 触摸屏类型:电容屏 ...
- Hadoop环境准备
1. 集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起. HDFS集群负责海量数据的存储,集群中的角色主要有: NameNode.DataN ...
- 【Math for ML】矩阵分解(Matrix Decompositions) (下)
[Math for ML]矩阵分解(Matrix Decompositions) (上) I. 奇异值分解(Singular Value Decomposition) 1. 定义 Singular V ...
- 2017-2018-2 20165221实验二《Java面向对象程序设计》实验报告
JAVA实验二报告 课程:Java程序设计 姓名:谭笑 学号:20165221 实验时间:2018.4.13--2018.4.15 实验2--1 实验内容 实现百分制成绩转成"优.良.中.及 ...
- Ettercap内网渗透
最近网速很卡,于是想到有人在蹭网,怎么捉弄一下呢? 1.开启ettercap ettercap -G 2. Hosts->Scan,List 发现有几个新的地址192.168.1.71,192. ...
- 【转】MySQL用户管理及SQL语句详解
[转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...
- 算法:60.第k个排列
解答参考:https://blog.csdn.net/lqcsp/article/details/23322951 题目链接:https://leetcode-cn.com/problems/perm ...
- sort和uniq去重操作【转】
去除重复行 sort file |uniq 查找非重复行 sort file |uniq -u 查找重复行 sort file |uniq -d 统计 sort file | uniq - ...
- Kafka监控KafkaOffsetMonitor【转】
1.概述 前面给大家介绍了Kafka的背景以及一些应用场景,并附带上演示了Kafka的简单示例.然后,在开发的过程当中,我们会发现一些问题,那就是消息的监控情况.虽然,在启动Kafka的相关服务后,我 ...