首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

Oracle9i怎么实现分区按月存储

2012-01-16 
Oracle9i如何实现分区按月存储请问各位,在oracle9i中如何实现分区按月存储?也就是说,不用管年份的那种。比

Oracle9i如何实现分区按月存储
请问各位,在oracle9i中如何实现分区按月存储?
也就是说,不用管年份的那种。比如今年1-12月它会自己建,到了明年,就又从一月开始存储。
最终能够达到动态的保存最近12个月的记录。

[解决办法]
可以使用数据仓库类似的滑动窗口技术
1、每个月建立一个按年月命名的空表,用来存储交换最早分区的数据;
2、每个月按年月建立一个新分区,用于存储最新数据;
3、将最旧的一个月(12个月以前的一个月)分区数据交换到新建的空表;
4、可以归档交换出来的分区表。
5、删除最旧的分区。
[解决办法]
数据仓库类似的滑动窗口技术
看不是很懂哦,首先明确程序端上不改动,其次,分区变了,如何写入到新分区,
业务时刻运行的话,如何同步?

2楼的初步想法是这样的.,可是数据量大的话,似乎效率和同步成立很大问题
[解决办法]
不知道你说的是不是这个意思 
在表里新建一个按月分区字段 分区代码
partition by range (分区字段)
(
partition P2 values less than ('02')
tablespace 表空间
pctfree 10 
pctused 75
initrans 4
maxtrans 255
storage
(
initial 4M
next 1M
minextents 1
maxextents unlimited
pctincrease 0
),
partition P3 values less than ('03')
tablespace 表空间
pctfree 10 
pctused 75
initrans 4
maxtrans 255
storage
(
initial 4M
next 1M
minextents 1
maxextents unlimited
pctincrease 0
),....以此类推
partition P13 values less than (MAXVALUE)
tablespace 表空间
pctfree 10
pctused 75
initrans 4
maxtrans 255
storage
(
initial 4M
next 1M
minextents 1
maxextents unlimited
pctincrease 0
)
);

热点排行