oracle数据库建表分区

devices 按天的分析数据的数据比较大,所以在数据库存贮中,需要做到几点优化。

1. 为节省存贮,事实表中所有字段存取的是number类型。

2. kettle 的转化过程中,因为转化的维度比较多,转化过程比较慢,每秒才转换150条左右。所以采取了先将数据导入数据库中然后能过存储过程的方式,在数据库中内部转换。

3. 事实表的建表中,采取了按月数据分区。由于每天的数据一般在12-13万条左右,一个月数据在 370万左右。分区可增强可用性,维护方便,均衡I/O,改善查询性能.

由于在数据库存取中并无日期字段,而是采用yyyyMMdd 的数字字段的方式存取。在自动分区中 感觉并不太好按月来进行自动分区, 以下是我采用的分区代码按月进行分区。


create table DEVICE_USEAGE_FACT (
date_id number,
pn_id date,

......
)
partition by range (date_id)
INTERVAL (100)
(
partition p090101 values less than (20120201)
);

-- 以100作为一个段,当转换一个月时,数据级就换一个百位级,形成按月分区的形式创建分区。

4. 为每一个维度字段建设立索引,由于建设立了分区,只能使用 普通索引, 不能使用位图索引.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值