oracle清理含有引用分区的表的数据库磁盘空间
某数据库系统用的比较花哨,因为数据量太大,按天建立表空间和数据文件,每天的数据放在不同的表空间中,为了保证数据的完整性,表之间通过外键进行关联,同时,表之间通过引用分区来进行分区。现在,需要清理这些表的历史数据文件。
清理含有引用分区的表的数据库磁盘空间
引用分区的表清理
引用分区首先是一个表A有个主键a1,另外一个表B的外键是A.a1。如果A表是个分区表,那么B表会根据A表进行分区。
在删除的时候,只需要删除A表的其中一个分区,那么B表对应的分区数据也会自动清理干净。
查询表的分区类型的视图
select * from all_part_tables;
查询表的所有约束的视图:里面定义了外键和主键等
select * from all_contraints;
可以通过上面两个表的关联,来查询那些是引用分区的表及其对应的主表。
删除一个表的表分区
alter table table_name drop partition part_name update global indexes;
删除一个表空间来清理磁盘空间
drop tablespace tablespace_name including contents and datafiles