白菜oracle数据库历史分区表删除清理方案 (个人经验,版权所有,请勿转载)
1.分区概述
数据库采用分区方式来实现存储空间的循环利用,对于系统影响最大的就是数据库优化方式的转变,也就是从RBO( Rule Based
Optimizer )向CBO( Cost Based Optimizer )的转变。在使用表分区 ( partition )
之前,Oracle数据库对其执行的SQL语句采用的是基于规则的优化方式( Rule Based Optimizer
),此种优化方式是通过语法实现的,因为它根据语句语法和有关数据结构的数据字典信息,以确定将使用哪一个执行计划,这也是早期 Oracle
缺省的优化方式;但是当数据库系统从普通表转换到分区表后 Oracle 就会强制使用基于成本的优化方式( Cost Based
Optimizer ),此种优化方式是通过统计实现的,因为它使用为 SQL 语句调用的对象而创建的统计,来确定最有效的执行计划,这也是
Oracle8i 之后推荐的优化方式。
2.表分区方法的策略
表中的所有数据根据特定时间字段值的范围转化为表分区结构的方法,
此方法可以比较容易地根据Oracle数据库的表分区结构备份、删除和恢复表分区中的数据.
3. 确定删除数据
3.1 确定已经删除的分区高值,根据表分区存在的最小日期确定
select
table_name(表名),partition_name(分区名),num_rows(分区内记录数) from
user_tab_partitions where table_name=分区表名称
3.2 确定需要删除的分区高值&