易截截图软件、单文件、免安装、纯绿色、仅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 创建序列:
create sequence SEQ_Tablename_id                                   
increment by   1 &nbs ......

Oracle数据库表空间操作

// 建立表空间(指定文件路径)。
create TABLESPACE EAS_D_sptcc0_STANDARD DATAFILE 'F:\oracledb\EAS_D_sptcc0_STANDARD.dbf' size 10000M EXTENT MANAGEMENT local;
// 删除表空间(指定文件路径)。
DROP TABLESPACE temp_data INCLUDING CONTENTS AND DATAFILES;
// 建立临时表空间。
CREATE TEMPORARY TABLESPA ......

oracle批量(batch)操作的使用

    /**
     * 更新记录,原子操作,不会commit
     * @param sql_id
     * @param condition
     * @return
     * @throws SQLException
     */
  &nbs ......

ORACLE物化视图 利用维对象来优化数据仓库的高级技巧


http://www.anysql.net/oracle/oracle_olap_dimension.html
在Oracle的数据仓库(OLAP)中, 实体化视图(MVIEW), 查询重写(Query Rewrite)和维(Dimension)是非常重要的优化手段, 对于前两者我不想在这儿重复讲了, 主要来体验一下维的作用. 要发挥维的作用, 还是需要用到前面两者, 下面是我设计的只有一个维表的最简单的例子 ......

Oracle Lock

http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96524/c21cnsis.htm#2937
Types of Locks
Oracle automatically uses different types of locks to control concurrent access to data and to prevent destructive interaction between users. Oracle automatically locks a resource on behalf of a tran ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号