Oracle索引(2)索引的修改与维护
修改索引
利用alter index语句可以完成的操作
重建或合并索引
回收索引未使用的空间或为索引非配新空间
修改索引是否可以并行操作及并行度
修改索引的存储参数以及物理属性
指定Logging或nologging
启用或禁用索引压缩
标记索引不可用
标记索引不可见
启动或关闭对索引的监控
1.修改索引参数设置
修改索引emp_job_indx的存储参数与物理属性参数
SQL> alter index emp_job_index initrans 20 storage(next 50K); 索引已更改。
2.合并索引与重建索引
(1)合并索引:
合并dept_dname_indx索引的存储碎片
SQL> alter index dep_dname_unique coalesce;--COALESCE 索引已更改。
(2)重建索引
清楚碎片的还有一种方式就是重建索引,这样还可以重新设置参数等
重建dept_dname_index索引
SQL> alter index dep_dname_unique rebuild; 索引已更改。
合并索引:
1.不能将索引移动到其他表空间
2.代价比较低,不需要使用额外的存储空间
3.只能在B树的同一子树种进行合并,不会改变树的高度
4.可以快速释放叶子节点中未使用的存储空间
重建索引:
1.可以将索引移动到其他的表空间
2.代价比较高,需要使用额外的存储空间
3.重建整个B树,可以降低B树的高度
4.可以快递更改索引存储参数,如果在重建中指出了ONLINE关键字,还可以再重建索引时使用索引。
3.禁用和启用函数索引
(1).禁用函数索引
禁用 emp_fname_indx
SQL> alter index emp_fname_indx disable; 索引已更改。
(2).启用函数索引
SQL> alter index emp_fname_indx enable; 索引已更改。
4.手动分配与回收索引存储空间
(1).为索引手动分配存储空间
SQL> alter index emp_fname_indx allocate extent (size 100K datefile 'D:\disk3\tbs3_1.dbf') ;
(2).回收存储空间
SQL> alter index emp_fname_indx deallocate unused; 索引已更改。
5.重名
SQL> alter index emp_fname_indx rename to emp_fname_index; 索引已更改。
6.打开监控与关闭监控
(1)开打监控
SQL> alter index emp_fname_index monitoring usage; 索引已更改。
(2)关闭
SQL> alter index emp_fname_index nomonitoring usage; 索引已更改。
维护索引
1.删除索引
一下的情况可以删除索引
(1)索引不再使用
(2)索引并没有提高检索性能。
(3)通过监控,很少使用的索引
(4)重建索引,因为有太多的碎片
(5)由于移动了表数据等操作导致索引失效。
SQL> drop index emp_fname_index; 索引已删除。
2.查询所有信息
Oracle索引(2)索引的修改与维护的更多相关文章
- oracle索引,索引的建立、修改、删除
索引,索引的建立.修改.删除 2007-10-05 13:29 来源: 作者: 网友评论 0 条 浏览次数 2986 索引索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和 ...
- Oracle序列和索引
序列和索引 一.序列 1.序列的概念: 序列(Sequence)是用来生成连续的整数数据的对象.它常常用来作为主键的增长列,可以升序,也可以降序. 2.创建序列: 语法:创建序列 ...
- Oracle中的索引详解
Oracle中的索引概述 索引与表一样,也属于段(segment)的一种.里面存放了用户的数据,跟表一样需要占用磁盘空间.索引是一种允许直接访问数据表中某一数据行的树型结构,为了提高查询效率而引入,是 ...
- oracle提高之索引学习
一. 索引介绍 1.1 索引的创建 语法 : CREATE UNIUQE | BITMAP INDEX <schema>.<index_name> ON <schema ...
- Oracle中B-TREE索引的深入理解(转载)
索引概述 索引与表一样,也属于段(segment)的一种.里面存放了用户的数据,跟表一样需要占用磁盘空间.只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样.在理解索引时,可以想象一本书, ...
- oracle 序列 视图 索引 同义词
序列 Oracle 12C 之后,Oracle 之中提供的是一种手工的自动增长列控制,而这样的控制在 Oracle 之中使用序列(对象)完成. 序列的创建: CREATE SEQUENCE 序列名称 ...
- Oracle——序列、索引、同义词
一.常见的数据库对象 二.序列 序列: 可供多个用户用来产生唯一数值的数据库对象 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内存可以提高访问效率 ①.创建序列 CREATE SEQ ...
- Oracle视图,索引,序列
什么是视图[View] (1)视图是一种虚表 (2)视图建立在已有表的基础上, 视图赖以建立的这些表称为基表(3)向视图提供数据内容的语句为 SELECT 语句,可以将视图理解为存储起来的 SELEC ...
- Oracle 分区表的索引、分区索引
对于分区表,可以建立不分区索引.也就是说表分区,但是索引不分区.以下着重介绍分区表的分区索引. 索引与表一样,也可以分区.索引分为两类:locally partition index(局部分区索引). ...
随机推荐
- Windows下免费软件的首选推荐
PS:以下按装机顺序排列,“|”号后面是备选软件. 启动引导:EasyBCD 虚拟机:VirtualBox Linux:Zorin | Linux Mint(Mate) | Ubuntu 驱动工具:驱 ...
- Java并发编程(十)设计线程安全的类
待续... 线程安全的类 之前学了很多线程安全的知识,现在导致了我每次用一个类或者做一个操作我就会去想是不是线程安全的.如果每次都这样的考虑的话就很蛋疼了,这里的思路是,将现有的线程安全组件组合为更大 ...
- Swoole系列(三):建立TCP服务器并发送数据测试
<?php // 建立tcp服务器下 $host = '0.0.0.0'; $port = 9501; $serv = new swoole_server($host,$port); $serv ...
- SSH总结(一)
其实学习struts等框架,不仅要知道怎么用,我们还应该多去看看框架的源码,知道为什么可以这样使用,凡事都知道为什么,以这样的态度学习,我们才能更加深一步的理解原理好实现方式,本类博客主要是个人学习总 ...
- C++中的return返回值:return0 or return -1?
C++98 中定义了如下两种 main 函数的定义方式: int main( ) int main( int argc, char *argv[] ) (参考资料:ISO/IEC 14882(19 ...
- [Python2.x] 利用commands模块执行Linux shell命令
用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要 ...
- 第二章----python基础
概要:python是一种计算机编程语言,有自己的一套语法,编译器或者解释器负责把符合语法的程序代码翻译成CPU能识别的机器码,然后执行.python使用缩进来组织代码块,Python程序中大小写是敏感 ...
- Android经常使用工具类DateUtils(二)
在编写代码中,会经经常使用到时间Date这个类,小编整理了一些经常使用的时间工具类.供大家參考. import java.text.ParseException; import java.text.S ...
- mybatis 一次执行多条SQL MySql+Mybatis+Druid之SqlException:sql injection violation, multi-statement not allow
如果用JDBC jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8 ...
- python 线程(thread)
#coding:utf-8#多线程#Python的标准库提供了两个模块:thread和threading,thread是低级模块,threading是高级模块,对thread进行了封装 #绝大数情况下 ...