深圳模板建站多少钱,石家庄网站开发哪家好,国家开发投资集团,携程网站联盟当使用delete表数据后#xff0c;空间无法释放#xff0c;可以使用表收缩释放表空间#xff1b;注意#xff1a;当delete表大量数据的时候要注意undo#xff0c;可以使用#xff1a;alter table emp nologging; 让其不生产日志一、表的增长方式当表被创建后#xff0…当使用delete表数据后空间无法释放可以使用表收缩释放表空间注意当delete表大量数据的时候要注意undo可以使用alter table emp nologging; 让其不生产日志一、表的增长方式当表被创建后随着记录的不断插入组成表的区间会被填满如果启用了自动扩展则当区间填满后会分配新的区间。假定高水位线随着记录的增加从最左端往右端来移动当到底部区间的尾端时则新的区间将会被分配。二、表可收缩的原理随着记录的增加高水位线不断的右移记录的删除不会导致高水位线往回(左)移动删除记录后的空闲空间(高水位线左侧)尽管可以使用但其稀疏性导致空间空闲注完整的表扫描所耗费的时间不会因为记录的减少(删除)而减少三、使用 alter table tbname shrink space 来收缩表段1. 实现原理实质上构造一个新表(在内部表现为一系列的DML操作,即将副本插入新位置删除原来位置的记录)靠近末尾处(右端)数据块中的记录往开始处(左端)的空闲空间处移动(DML操作)不会引起DML触发器当所有可能的移动被完成高水位线将会往左端移动(DDL操作)新的高水位线右边的空闲空间被释放(DDL操作)2. 实现前提条件必须启用行记录转移(enable row movement)仅仅适用于堆表,且位于自动段空间管理的表空间(堆表包括:标准表,分区表,物化视图容器,物化视图日志表)3. 不能实现收缩的表群集表具有LONG类型列的表LOB段(尽管表本身可以被缩小)注10gR2以后版本支持对LOB段的收缩具有基于提交的物化视图的表(因为禁用了触发器)具有rowid物化视图的表(因为rowid发生了变化)IOT映射表IOT溢出段索引基于函数的表未启用行记录转移的堆表4. 段收缩的优点提高缓存利用率提高OLTP的性能减少磁盘I/O提高访问速度节省磁盘空间段收缩是在线的索引在段收缩期间维护不要求额外的磁盘空间5. 两个选项cascade: 缩小表及其索引并移动高水位线释放空间compact: 仅仅是缩小表和索引并不移动高水位线不释放空间alter table tbname shrink space 相当于带cascade参数实战练习1、首先删除表里的数据SQL alter table FEE_COLLECT_TMP nologging; ----设置表不产生undoSQL delete from FEE_COLLECT_TMP where CUTOFFDAY20170501;SQL commit;2、收缩表SQL alter table FEE_COLLECT_TMP enable row movement; --开启row movementSQL alter table FEE_COLLECT_TMP shrink space; --shrink成功3、语法总结ALTER TABLE ENABLE ROW MOVEMENT --前提条件ALTER TABLE SHRINK SPACE [ | COMPACT | CASCADE ];ALTER TABLE SHRINK SPACE COMPCAT; --缩小表和索引不移动高水位线不释放空间ALTER TABLE SHRINK SPACE; --收缩表降低高水位线;ALTER TABLE SHRINK SPACE CASCADE; --收缩表降低高水位线并且相关索引也要收缩一下ALTER TABLE MODIFY LOB (lob_column) (SHRINK SPACE); --收缩LOB段ALTER INDEX IDXNAME SHRINK SPACE; --索引段的收缩同表段#################################################################1、收缩普通表批量脚本selectalter table ||table_name|| enable row movement;||chr(10)||alter table ||table_name|| shrink space;||chr(10)from user_tables;selectalter index ||index_name|| shrink space;||chr(10)from user_indexes;