数据仓库的物理设计数据仓库的逻辑设计完成后,就需要根据逻辑模型开始进行物理设计。 (一)物理设计过程:建立标准-->建立聚集计划-->确定数据分区方案-->建立聚簇选项-->准备索引策略-->安排存储结构-->完成物理建模。 (二)物理设计考虑地因素 对数据库进行逻辑设计的目的是为反应现实情况地信息内容建立一个概念模型,逻辑建模代表所有地数据组成和相互关系。 物理设计过程地主要目的是为了提高性能和更好地管理好存储的数据。 物理设计过程地一些关键目标: 提高性能; 保证可伸缩性; 存储管理; 提供简便地管理; 灵活性设计。 物理模型的主要组成: 表、列、主键、外键、同义词、试图、约束、索引、注视、用户角色、安全特权和文件(表空间) 标准的意义: 数据仓库中地标准涵盖了很广地范围,包括对象、进程和过程。对于物理模型,对象命名标准有特殊意义。 数据库对象命名 1、对象组件命名:使用一种清楚的方法组合对象地名称,名称本身必须能包括对象本身地含义和描述; 2、单词分界符号 3、逻辑模型和物理模型的命名 准备区域文件和表名称定义 1、标志进程:确定和进程相关的文件; 2、表明目的 物理文件命名规范
(三)物理存储 (1)存储区数据结构 准备区域内数据;数据仓库数据(数据和索引表);OLAP的多维数据。 主要如下图:
设置正确的块大小:一般来说增加块大小可以提高性能,但是还是需要找到合适的块大小。 设置合适的块使用参数:通常块的使用由块空闲率和块使用率决定。 数据迁移管理; 块使用管理; 解决动态扩展; 使用文件分带技术。 (3)使用RAID技术 RAID技术基本特征如下: 磁盘镜像:将相同的数据写入连接到相同控制器的两个磁盘中; 双磁盘:和磁盘镜像类似,不同的是每个驱动器有自己单独的控制器; 奇偶校验:为数据加入校验位以保证数据传输可靠; 磁盘分带:数据按扇区或者字节分布在多个磁盘上。 RAID分位6个不同的等级如下图:
(4)估计存储容量 下面是估计存储容量的要点 1、对每个数据库表,确定 行数的初始估计 行的平均长度 估计行的每月增长数 表的初始大小,以兆字节计算 表6个月和12个月的大小 2、对所有表,确定 索引的个数 索引在最初、6个月和12个月后需要的空间 3、估计 排序、合并需要的临时空间 准备区内的临时文件 准备区内的永久文件。
(四)为数据仓库建立索引 (1)索引 一般的规则是索引的最多个数和表的大小成反比。在建立索引时请注意下面几个通用的原则: 索引和加载:当存在大量的索引时,向数据仓库中加载数据速度会非常慢,可以在加载前先删除索引,完成后再建索引。 建立大表索引:当表太大了不能建立太多索引,如果必须建立多个索引,建议将大表分成小表再建立多个索引; 只读索引:在数据检索过程中,索引记录是首先读入的,然后再读入对应的数据。 选择索引的列:分析最常用的查询,哪几列经常用来限定查询,那么这几列就是建立索引的候选列; 一种分阶段的方法:一开始只为每个表的主键和外键建立索引,然后监视系统性能,特别是长时间运行的查询, 根据监视结果再增加索引。
(2)B树索引 B树索引适用于列的可选择性比较强的情况下。若表的某一列有很多唯一的值,那么就说这列的可选择性比较强。如果需要的信息在索引里面,则B树索引不需要在访问表获取记录信息。 (3)位图索引 位图索引适用于低可选择性的数据。如果有新值加入到建立了位图索引的列中,位图索引必须重新建立,另外在访问位图索引后总是要访问数据表。 (4)簇索引 在其他索引中,索引段包括被索引的列而且还包括数据段中的地址入口。而簇表将数据段和索引段结合起来合而为一。 (5)为事实表建立索引 需要注意下面几点: 1、如果DBMS不为主键建立索引,那么专门为全部的主键建立一个B-Tree索引; 2、仔细设计要建立索引的组合键中的单个键的顺序。将查询中经常使用到的列作为组合键中级别高的键; 3、考虑组合键中的每一个键,根据查询过程需要建立组合索引; 4、如果DBMS支持访问智能组合索引,就可以为每个单独的键建立索引; 5、不要忽略为包括指标的列建立索引的可能性; 6、位图索引不适用于事实表。事实表中基本没有低选择性的列。 (6)为维度表建立索引 1、在单一主键上建立唯一的B-Tree索引; 2、检查约束查询经常用到的列。这些列是位图索引的候选列; 3、在大的维度表中查找经常被一起访问的列。确定如何在这几列上建立和安排多列索引; 4、为经常用于连接(join)条件的每个列建立单独的索引。
(五)提高性能的技术 (1)数据分区 (2)数据聚簇 (3)并行处理 (4)汇总级别 (5)参考完整性检查 (6)初始化参数 (7)数据阵列 |
|