求救!!!如何设计Oracle历史数据的管理模式和方法呢??大佬们给点意见!!!十万火急!江湖救急!!!

解决方案 »

  1.   


    举个栗子:
    既然说是历史数据,那么这个“历史”肯定可以由某个时间字段来定义,按照这个时间字段(通常也是上层应用查询经常或者必定会使用到的时间字段)将表分区,因为oracle的分区支持drop、truncate、exchange等操作,你可以按照你喜欢的方式来处理那些按照分区字段的标准,可以被归为“历史数据”的分区数据。
    设计这种分区时候需要注意的是:表上索引应该采用什么样的类型,全局索引?还是本地索引,因为在分区经历上述的drop、truncate等操作时,分区表上的全局索引会失效,你可能需要在操作分区时,加上update global indexes子句来保证索引不会失效(当然分区操作速度大幅下降),或者在分区操作完成后,重建这些失效的全局索引。
    当然你可以使用本地索引,当然本地索引在范围扫描时候耗费的IO会高于全局索引,繁忙的OLTP系统上,可能要做些取舍了。
    另外,关于局部索引与全局索引,还有两个限制:1、位图索引只能是本地索引;2、主键如果不包含分区字段,那么主键索引只能是全局索引。