(只有数据库管理员权限的用户才能进行下面的操作,若用户没有权限,可以考虑赋权)
(当表中有大量的数据并删除表中的部分数据后,表的高水位还处于删除数据前的位置,高水位需要手动降低)
(eg:JMS_NEWS_BACK 是张分区表) 参考:
http://www.itpub.net/thread-1832839-1-1.html
http://blog.csdn.net/rockywu/article/details/50723859
http://blog.csdn.net/jaune161/article/details/38849243
https://zhidao.baidu.com/question/356835522.html
http://blog.csdn.net/robo23/article/details/40023213
eg:SELECT segment_name, segment_type, blocks FROM dba_segments WHERE segment_name = 'JMS_NEWS_BACK';
压缩表的高水位线
(eg:JMS_NEWS_BACK 是张分区表)
:
alter table JMS_NEWS enable row movement;
alter table JMS_NEWS shrink space cascade;
alter table JMS_NEWS disable row movement;
备注:oracle数据库查询单张表数据条数:select count(*) from JMS_NEWS_BACK t;
(
补充知识:Oracle数据库中delete,truncate,drop的区别参考:
http://www.cnblogs.com/simplefrog/archive/2012/07/30/2615169.html)
truncate语法:truncate table tableName 作用:删除表tableName中的全部数据,不支持添加过滤条件进行删除部分数据,且压缩高水位线,
保持表结构不变,但是不支持回滚机制,数据无法恢复。
delete删除表中数据后,会保留有删除数据行的段位,高水位线没有压缩下去,导致查询此条的时间没有减少,但是delete删除支持回滚机制。
drop直接删除表结构同时表中数据也被删除。