oracle表碎片整理
来源:互联网 发布:淘宝能代理几个分销商 编辑:程序博客网 时间:2024/05/24 02:57
alter
含义:
行迁移,意思就是,一个现存的行允许改变其rowid(物理存储地址),通常情况下,数据行在分配了空间之后,行的rowid就固定了,即使以后行长度超出预留的空间,也不会将其移动,在长数据行的情况下,表会产生行链接,对于io来说,行链接是不利的,为了性能,就需要将行调整为在单个物理存储地址下能保存行的所有信息,这需要行迁移.另外在flashback的时候,由于原始版本的行占据了相应的物理地址,所以,也需要行迁移.
其它的,比如说在收缩段空间的情况下,由于要把所有段数据向段前挤压,大部分行都需要改变其物理地址.也需要行迁移
alter table shrink 的用法及与alter table move的区别 ,对随便整理的补充:
http://pandarabbit.blog.163.com/blog/static/20928414420132193756219/
碎片完执行:alter table t1 disable
以下为测试sql:
--收集表信息
exec dbms_stats.gather_table_stats('JOINSPIDER','TB_SPIDER_INFO_LOG',CASCADE=>TRUE);
--得到表、索引大小
select sum(bytes)/1024/1024 from user_segments where segment_name='TB_SPIDER_INFO_LOG';
select sum(bytes)/1024/1024 from user_segments where segment_name='SIL_SPIDER_INFO_CODE_INDEX';
select sum(bytes)/1024/1024 from user_segments where segment_name='SIL_START_TIME_INDEX';
--得到表的块信息
SELECT blocks, empty_blocks, num_rows FROM user_tables WHERE table_name ='TB_SPIDER_INFO_LOG';
--分析empty_blacks
analyze table TB_SPIDER_INFO_LOG compute statistics;
analyze table 一般可以指定分析: 表,所有字段,所有索引字段,所有索引。 若不指定则全部都分析。
从oracle8i开始﹐analyze语句和dbms_stats包都可以收集相关对象(Tables﹑Indexes﹑Clusters and Materialized Views)的statistics。
1.analyze table t1 compute statistics for table;
(只对表的总体信息进行统计,比如行数多少等,不涉及到表字段)
2.analyze table t2 compute statistics for all columns;
(只会收集表字段信息)
3.analyze table t3 compute statistics for all indexed columns; -->user_tab_columns
(只会收集表中索引所在的字段信息)
4.analyze table t4 compute statistics for all indexes;à user_indexes
(只收集表索引的信息)
5.analyze table t5 compute statistics;
(收集表,表字段,索引的信息)
--得到高水位线信息,越大越差
SELECT TABLE_NAME, (BLOCKS * 8192 / 1024 / 1024) - (NUM_ROWS * AVG_ROW_LEN / 1024 / 1024) "Data lower than HWM in MB"
FROM USER_TABLES
WHERE table_name = 'TB_SPIDER_INFO_LOG';
--全表扫描消耗的时间
explain plan for select * from TB_SPIDER_INFO_LOG;
select * from table(dbms_xplan.display);
--锁片整理
alter table TB_SPIDER_INFO_LOG enable row movement;
alter table TB_SPIDER_INFO_LOG shrink space cascade;
alter table TB_SPIDER_INFO_LOG disable row movement;
--碎片整理后再执行一次:
exec dbms_stats.gather_table_stats('JOINSPIDER','TB_SPIDER_INFO_LOG',CASCADE=>TRUE);
analyze table TB_SPIDER_INFO_LOG compute statistics;
然后各项指标会迅速提升。
- oracle表碎片整理
- oracle表空间碎片整理
- ORACLE表空间的碎片整理
- ORACLE表空间的碎片整理 20131224
- Oracle表空间碎片查询以及整理
- oracle 表的碎片化整理
- Oracle 数据库碎片整理
- Oracle数据库碎片整理
- oracle碎片整理
- Oracle数据库碎片整理
- Oracle数据库碎片整理
- Oracle 碎片整理 问题
- Oracle 碎片整理
- Oracle 碎片整理
- Oracle 碎片整理
- Oracle碎片整理
- oracle 碎片整理
- Oracle 碎片整理 问题
- 开源框架下载地址
- androlyze.py使用方法【二】
- 使用 Charles 获取 https 的数据
- i2c-dev和spi-dev
- 第三方登陆跳转传递图片和名字
- oracle表碎片整理
- C#操作摄像头 实现拍照功能
- Mysql5.7源码安装
- test_latex_coding
- 关于对linux环境变量的理解
- 接收详情
- zTree && blockUI(2016-6-30)
- mybatis相关1
- HRESULT解析