Oracle_索引置为invisible和unusable状态是否占用空间
来源:互联网 发布:ios软件免费下载 编辑:程序博客网 时间:2024/05/20 05:46
目前,面对磁盘空间的严重不足,大量垃圾数据的存在。导致空间的大量浪费,怎样能更好的管理数据库,管理数据资产问题,已变的十分紧迫。
先通过将索引设置为Invisible状态,验证是否可以腾出空间。
1、创建测试用表
create table sdxj.xiaoxu_t1 as select * from dba_objects;
2、插入大量数据
insert into sdxj.xiaoxu_t1 select * from dba_objects;
commit;
-------可以多执行几遍,测试执行了7次。
3、创建created字段索引
create index sdxj.idx_created on sdxj.xiaoxu_t1 (created);
4、对表进行分析
exec dbms_stats.gather_table_stats( 'sdxj', 'xiaoxu_t1', estimate_percent => 30, method_opt => 'for all columns size 1', cascade => true, degree => 16 );
5、查询表和索引大小
select owner,segment_name,bytes/1024/1024 "大小M" from dba_segments where segment_name in ('XIAOXU_T1','IDX_CREATED');
6、设置索引为invisible状态
alter index sdxj.idx_created invisible;
---查询修改后的状态
select owner,index_name,status,visibility from dba_indexes where index_NAME IN ('IDX_CREATED');
7、查看修改后表和索引大小
select owner,segment_name,bytes/1024/1024 "大小M" from dba_segments where segment_name in ('XIAOXU_T1','IDX_CREATED');
----经查询和第5步数据大小一致,说明空间未减少。
8、设置索引为unusable状态
alter index sdxj.idx_created unusable;
---查询修改后的状态
9、查询修改后的表和索引大小
select owner,segment_name,bytes/1024/1024 "大小M" from dba_segments where segment_name in ('XIAOXU_T1','IDX_CREATED');
----这是只看到表的大小,索引对应的大小无返回记录。可见索引所占用的空间被释放。
10、恢复索引状态
----恢复索引unusable状态
alter index sdxj.idx_created rebuild online;
---查询大小
---恢复索引invisiable状态
alter index sdxj.idx_created visible;
总结: invisiable 可以将索引设置为不可见,一般用于字段索引不合适,但执行计划还在采用时,unusable 可以将不用的索引先设置为改状态,一段时间后
可以进行删除操作。invisiable 转换为visiable状态比较脚本一条命令即可,而unusable 转换为online状态,相当于重建索引操作,对于热表会产生锁表现象。
因此,大家要根据自己的实际情况去选择合适的方法操作。
- Oracle_索引置为invisible和unusable状态是否占用空间
- Oracle index unusable和invisible的区别
- oracle 索引 状态 unusable,usable ,disable,enable
- index invisible与unusable 特性
- DB2统计表和索引占用空间量
- MySQL数据和索引占用空间查询
- ORA-29861: 域索引标记为 LOADING/FAILED/UNUSABLE
- ora-29861: 域索引标记为loading/failed/unusable
- ORA-29861: 域索引标记为 LOADING/FAILED/UNUSABLE
- ora-29861:域索引标记为loading/failed/unusable
- ora-29861:域索引标记为loading/failed/unusable
- ORA-29861: 域索引标记为 LOADING/FAILED/UNUSABLE
- ORA-29861: 域索引标记为 LOADING/FAILED/UNUSABLE
- unusable index and invisible index 的区别
- 索引unusable|disable|enable
- 索引unusable|disable|enable
- 对oracle中drop和truncate对表占用空间和索引占用空间的影响不同的研究
- 文件大小和占用空间
- intent.setFlags的参数含义及使用方法
- mybatis 连接mysql数据库 tinyint 为boolean类型
- EditText 里的属性
- 在C#中调用C++写的DLL
- 18种和“距离(distance)”、“相似度(similarity)”相关的量的小结
- Oracle_索引置为invisible和unusable状态是否占用空间
- 专为设计师而写的GitHub快速入门教程
- 中国大学MOOC-陈越、何钦铭-数据结构基础习题集 00-自测1. 打印沙漏(20)
- git笔记之README.md格式
- [leetcode] 240.Search a 2D Matrix II
- 《笨方法学python》-3
- cuda
- BAPC2014 C&&HUNNU11583:Citadel Construction(几何)
- 采用servlet请求读流展示页面图片