单位的老数据库表空间满了,整理了清理缩减语句,备忘
--查询表-占用表空间的大小
select 'drop table ' || segment_name || ' purge;', sum(bytes)/1024/1024 Mbytese from user_segments a , user_tables b
where segment_type='TABLE' and a.segment_name=b.TABLE_NAME and b.COMPRESSION='DISABLED'
group by segment_name,COMPRESSION order by sum(bytes)/1024/1024 desc;
select distinct trandate from JXXX order by trandate;
--查询某表的使用空间
SELECT table_name,
ROUND((blocks * 8/1024), 2) "高水位空间 M",
ROUND((num_rows * avg_row_len / 1024/1024), 2) "真实使用空间 M",
ROUND((blocks * 10 / 100) * 8, 2) "预留空间(pctfree) M",
ROUND((blocks * 8 - (num_rows * avg_row_len / 1024) -blocks * 8 * 10 / 100), 2) "浪费空间 M",
((blocks * 8-(num_rows * avg_row_len / 1024))/1024)/(blocks * 8/1024) "浪费空间 %"
FROM user_tables
WHERE table_name = 'JXXX';
--查看标识
select row_movement from user_tables where table_name='JXXX';--DISABLED
--开启

本文档记录了在Oracle数据库中处理表空间满的问题,主要介绍了一种通过shrink语句快速压缩表空间的方法,该方法相较于move操作,避免了重建索引的步骤。
最低0.47元/天 解锁文章
5263

被折叠的 条评论
为什么被折叠?



