数据仓库性能优化技术

浏览: 2504

性能优化的原则:

1)         提高操作中最慢部分的速度

2)         剔除不必要的操作

获取性能的技术:

基于数据使用模式生成索引

    问题:需要加载索引,加载时间可能会比较长

          需要额外的存储空间

          在线更新索引,会带来其他的性能问题

    补充:稀疏索引-对表格的一部分数据记录进行索引(大部分dbms不支持,需编写代码)

使用数组

    将数据物理地组织在一起

表格合并

    将多个经常联合使用的表格合并成一张表,可以一次访问到这些数据,减少IO

建立冗余数据

    一些描述性字段可以在需要它的数据表里冗余,而不是每次要去访问属性表获取描述,浪费额外的IO

聚集数据

    如果需要重复进行相同的底层数据聚集操作,可以建立起对应的聚集表格,并允许用户访问聚集值

拆分事务使IO最少

    将事务拆分成几个较小的事务,而不是一次完成造成大量的IO和序列等待

工作日管理

    对高性能的时段进行拆分,在可能的闲时运行大事务或长序列事务

容量计划和管理

    监视系统活动,分析趋势,主动扩展系统资源;采用并行体系,使得系统性能可以获得线性扩展

管理大容量数据

    对数据仓库中老化的数据,可以转移到二级存储设备中,因此可以存储大量数据而不会降低系统性能

    原因:索引可能变得过大而且低效

          数据因基本空间问题,进行应急空间而难以访问

          散列数据冲突,可能出现两行数据在同一算法上相同的键值

          顺序搜索需要太长的时间

          长数据链的创建

数据集市与性能

    数据集市可以满足所属部门的需求,使用性能高,而且分散了数据仓库的压力

ETL效率和性能

    ETL尽量设计成独立运行单元,可以支持更大容量的数据流;如果使用公共接口,会出现性能问题

    补充:尽可能使用快照,每次生成新的生产数据的快照,而不是更新已有数据,当然可能带来记录数量的问题,而且不可能在所有情况下适用

移动少量数据

    对少量数据的频繁移动,而不是对大量数据的非频繁移动(会造成阻塞和系统等待队列)

使用日志文件

    尽可能的使用日志文件,因为包含细节数据,而且可以离线处理,不会造成生产系统的额外负载

生成在线报表

    一次性生成报表,并保持在线状态,可以减少对系统的重复访问

重复查询

    与报表类是,对查询结果保持在线,也有助于优化重复查询的性能

滚动式汇总数据

    每天结束时,将这一天的细节数据汇总存入每天的数据表,每周、每月同理操作。可以减少细节数据的重复访问,减少资源开销。

推荐 1
本文由 newkoa 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册