创建表

 create table student(
student_id number,
name varchar2(240)
) tablespace school_data;

创建索引

create index student_n1 on studen(name);

查看索引具体内容

 SELECT * FROM dba_indexes dbi WHERE dbi.index_name = 'STUDENT_N1';
--查看具体的列,可以发现tablespace_name,PCTFREE等属性,说明索引也是存储与数据块中的一个具体文件 --插入数据后,段也创建了(因为延迟段)
INSERT INTO student VALUES(101,'ALEX');
COMMIT;
select * from dba_segments dbs where dbs.segment_name = 'STUDENT_N1';

索引的状态

alter index student_n1 unusable;
--再次查看
SELECT dbi.index_name,
dbi.status
FROM dba_indexes dbi
WHERE dbi.index_name = 'STUDENT_N1';
--索引的状态变为UNUSABLE了
--再次查看段,会发现段已经没有了
select * from dba_segments dbs where dbs.segment_name = 'STUDENT_N1';
select * from dba_extents dbe where dbe.segment_name = 'STUDENT_N1';
--查看区,也发现区也没有了

结论:使索引变为不可以不仅是改变状态而已。

参考资料:当索引不可用(unusable)时,Oracle 内部会把该索引元数据(即创建语句包含的基本信息)与真

是物理数据之间的对应关系断裂,相关数据块可被重用(经过实验,ORACLE 会把索引段删

除,但是 sys 用户索引除外)。索引段是否已创建(dba_indexe_segment_created)这一属性,

会变为 no(正常情况向,应为 yes)。Unusable 索引,想要被重新使用,只有一种方法:rebuild。

当然还可以 drop 再 create

重建索引

alter index student_n1 rebuild;
--重建后可以再次在数据字典中看到了
select * from dba_segments dbs where dbs.segment_name = 'STUDENT_N1';
select * from dba_extents dbe where dbe.segment_name = 'STUDENT_N1';

删除索引

drop index student_n1;

除此之外还有两种修改索引状态的语句:

alter index student_n1 disable;
alter index student_n1 enable;

然而我们执行以上语句会报错

SQL> alter index student_n1 disable;
alter index student_n1 disable
*
ERROR at line 1:
ORA-02243: invalid ALTER INDEX or ALTER MATERIALIZED VIEW option

因为该语句只能用于函数索引上

-- 创建函数索引
create index student_name_n1 on student(upper(name));
alter index student_name_n1 disable;

Oracle重建索引的更多相关文章

  1. Oracle 重建索引脚本

    该指数是一个有力的武器,以提高数据库的查询性能. 没有索引,喜欢同样的标签库没有书籍,找书,他们想预订比登天还难.中,尤其是在批量的DML的情形下会产生对应的碎片.以及B树高度会发生对应变化.因此能够 ...

  2. [转]Oracle 重建索引的必要性

    http://blog.csdn.net/leshami/article/details/23763963 索引重建是一个争论不休被不断热烈讨论的议题.当然Oracle官方也有自己的观点,我们很多DB ...

  3. oracle 重建索引以及导出所有的索引脚本(可以解决还原数据库文件时先还原数据,在重新用脚本创建索引)

    导出数据库备份文件 1. 备份服务器数据,采用并行方式,加快备份速度(文件日期根据具体操作日期修改) expdp jhpt/XXXX directory=databackup dumpfile=dpf ...

  4. ORACLE关于索引是否需要定期重建争论的整理

    ORACLE数据库中的索引到底要不要定期重建呢? 如果不需要定期重建,那么理由是什么? 如果需要定期重建,那么理由又是什么?另外,如果需要定期重建,那么满足那些条件的索引才需要重建呢?关于这个问题,网 ...

  5. Oracle重建表索引及手工收集统计信息

    Oracle重建所有表的索引的sql: SELECT 'alter index ' || INDEX_NAME || ' rebuild online nologging;' FROM USER_IN ...

  6. Oracle分区索引

    索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局分区索引) 下面就来详细解 ...

  7. 11G在线重建索引

    SQL> select count(*) from test_idx; COUNT(*) ---------- 19087751 SQL> select segment_name,segm ...

  8. Oracle数据库索引使用及索引失效总结

    容易引起oracle索引失效的原因很多: 1.在索引列上使用函数.如SUBSTR,DECODE,INSTR等,对索引列进行运算.需要建立函数索引就可以解决了. 2.新建的表还没来得及生成统计信息,分析 ...

  9. ORACLE虚拟索引(Virtual Index)

    ORACLE虚拟索引(Virtual Index)   虚拟索引概念 虚拟索引(Virtual Indexes)是一个定义在数据字典中的假索引(fake index),它没有相关的索引段.虚拟索引的目 ...

  10. 【转】Oracle之索引

    简介 1.说明 1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的目录.在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用目录可以不用翻阅整本书即可找到想要的信 ...

随机推荐

  1. reids(2)概述与安装

    前言 redis安装在Linux服务器上,系统为centos7,安装的版本为redis6.2.10 下载与安装 下载地址:https://redis.io/download/#redis-downlo ...

  2. Hexo系列(三):Hexo主题

    作者:独笔孤行 官网:​​ ​http://anyamaze.com​​ 公众号:云实战 Hexo支持更换主题,支持多种主题模式,也支持自定义主题. Hexo主题地址1:https://hexo.io ...

  3. redis(10)事务和锁机制秒杀

    Redis事务定义 Redis 事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断. Redis 事务的主要作用就是串联多个 ...

  4. PostgreSQL控制文件讲解及案例

    PostgreSQL控制文件内容: 主要分为是三部分,初始化静态信息.WAL及检查点的动态信息.一些配置信息. 我们可以用过pg_controldata命令直接读取PostgreSQL控制文件内容: ...

  5. LeetCode-156 上下翻转二叉树

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-upside-down 题目描述 给你一个二叉树的根节点 root ,请你 ...

  6. vue中引入字体

    前言: 做大屏 项目需要引入字体做个记录一.先看看效果  二.实现1.下载字体文件 分享一个下载开源字体网站: https://www.dafont.com/theme.php2.文件放到项目中 可以 ...

  7. codeforce F. Multicolored Markers

    http://codeforces.com/contest/1029/problem/F 这道题真的一点都不难-------------------- 对于大矩形面积a+b,从差距最小的因数开始遍历, ...

  8. eclipse调整控制台长度

  9. PHP 发送application/json POST请求

    PHP用CURL发送Content-type为application/json的POST请求方法 function json_post($url, $data = NULL) { $curl = cu ...

  10. pycharm安装appium,通过国内的镜像源安装python包,注意每次都要添加信任选项 --trusted-host mirrors.aliyun.com

    1.更改阿里源   或者清华源 1.file - - settings - -   project - - project interpreter  - - 右侧+  - -  manage  rep ...