易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle数据仓库中三种优化


对于我们这个项目来说,数据库的存取的性能决定了数据提供的性能。优化的大致的原理只有两个:一是数据分块存放,便于数据的转储和管理;二是中间处理,提高数据提供的速度。
基于上面两个根本的原理,借助于数据仓库的概念,列举数据库的优化方式:
1. 分区
在数据仓库中,事实表,索引表,维度表分处于三个不同的表空间当中(在部署的时候,最好是部署到不同的磁盘上)。这样子做的原因就是便于并发操作,其实数据仓库和普通的数据库之间没有严格的界限,主要还是部署上,当然oracle本身会为数据仓库中的“事实表”生成“知识库”等操作,保证更快的数据提供效率,其实可以借助于job和外部程序来调度存储过程实现。基于这个思路,本项目数据库中的索引将和事实表分开维护,当然这称不上分区()。真正的分区是指下面的内容。
分区就是partition/subpartition,对于事实表本身来说,以月为单位作partition挂载到不同表空间上。具体的示例如下:
create table T_LOGNODE_RECORD
(
……
  CALLIN_HH      NUMBER(2) not null,
  CALLIN_DD      NUMBER(2) not null,
  CALLIN_MONTH  NUMBER(2) not null,
  CALLIN_YEAR    NUMBER(4) not null,
  MONTH_MOD     NUMBER(1) not null
)
PARTITION BY LIST (MONTH_MOD) 
(
PARTITION P0 VALUES (0) TABLESPACE TS0, 
PARTITION P1 VALUES (1)  TABLESPACE TS1, 
PARTITION P2 VALUES (DEFAULT) TABLESPACE TS2
);
上述的代码中以MONTH_MOD字段作为分区标准,将T_LOGNODE_RECORD分到三个不同的表空间(TS0,TS1,TS2)中,这里有一个技巧,MONTH_MOD = 月份mod3,这样子可以不需要人工的维护哪个月分入哪个分区。当然简单的以月作为分区之后,对于我们当前的数据库来说还是远远不够的,因为即使是一个月的数据依然是很巨大的,那么需要我们做SUBPARTITION,做法的示例为:
create table T_LOGNODE_RECORD
(
……
  CALLIN_DD   NUMBER(2) not null,
  MONTH_MOD NUMBER(1) not null
)
PARTITION BY RANGE(MONTH_MOD)
SUBPARTITION BY LIST(CALLIN_DD)
SUBPARTITION TEMPLATE
(
SUBPARTITION SUBP1 values (1),
SUBPARTITION SUBP2 values (2),
SUBPA


相关文档:

oracle 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

linux oracle 安装

linux下oracle安装:
Oracle公司宣称在Linux下安装Oracle9i数据库至少要有512MB的内存和至少1GB或者两倍     
内存大小的交换空间,对于系统内存大于2GB的服务器,交换空间可以介于2GB—4GB之间。     
如果是为了在一台仅有256M内存的普通PC机上试用Oracle9 ......

trunc()函数的学习 (oracle)

trunc()函数有两种用法 1:后面跟日期  2: 后面跟数字
A: SELECT a.times,to_date(a.times,'yyyymmdd'),trunc(to_date(a.times,'yyyymmdd'),'month') from dmf_loan_limit a
显示的结果为:
1 20080131     2008-1-31    2008-1-1
2 20080131  &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号