数据库-OLAP-OLTP

当今的数据处理大致可以分成两大类:
    OLTP(on-line transaction processing 在线事务处理,联机事务处理)
    OLAP(On-Line Analytical Processing  在线分析处理,联机分析处理)

OLTP是传统的关系型数据库的主要应用模式,主要是基本的、日常的事务处理(插入、修改、查询和删除操作),例如银行交易、门票在线销售系统
    系统强调数据库的内在效率,强调内存各种指标的命中率,强调绑定变量,强调并发操作;
    用户并发数很多,但只对数据库做很小的操作,数据库侧重于对用户操作的快速响应,这是对数据库最重要的性能要求。
    对于OLTP来讲,数据库内存的设计显得很重要,如果数据库可以在内存中处理,那么数据库的性能无疑会提高很多。
    内存的设计通常是通过调整Oracle和内存相关的初始化参数来实现的,比较重要的几个是内存相关的参数,包括SGA的大小(Data Buffer,Shared Pool)、PGA大小(排序区,Hash区等),
    这些参一个OLTP系统里显得至关重要,OLTP系统是一个数据块变化非常频繁、SQL语句提交非常频繁的系统。
    对于数据块来说,应尽可能让数据块保存在内存当中,对于SQL来说,尽可能使用变量绑定技术来达到SQL的重用,减少物理I/O和重复的SQL解析,能极大地改善数据库性能。

OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。主要是查询处理
    系统强调数据分析,强调SQL执行时长,强调磁盘I/O,强调分区等。
    用户并发数较少,内存可以优化的余地较小,甚至觉得增加CPU处理速度和磁盘I/O速度是最直接的提高数据库性能的方式方式,但这将意味着成本的增加。
    实际上,用户对OLAP系统性能的期望远远没有对OLTP性能的期望那么高。在OLAP系统中,SQL的优化显得非常重要,分区技术在OLAP数据库中很重要。

下表列出OLTP和OLAP之间的比较 
    类型           OLTP                                                                            OLAP
    用户           操作人员,低层管理人员                               决策人员,高级管理人员
    功能           日常操作处理                                                   分析决策,支持复杂的分析操作
    DB设计     面向应用                                                            面向主题
    数据           当前的,最新的细节的,二维的分立的       历吏的,聚集的,多维的,集成的,统一的
    存取           读/写数十条记录                                              读上百万条记录
    工作单位   简单的事务                                                      复杂的查询
    DB大小     100MB-GB                                                      100GB-TB
    度量:       专注于日常时实操作以事务吞吐量为度量  以查询吞吐量和响应时间来度量
    访问模式   短的原子事务,并发控制和恢复机制         大部份是只读操作,其中大部份是复杂查询




OLTP使用注意:
    1.  最容易出现瓶颈常表现在CPU和磁盘子系统
    1.1 CPU出现瓶颈表现在逻辑读总量(单个语句的逻辑读*执行次数)与计算性函数或过程上;
        优化:减少单个语句的逻辑读,或减少执行次数
              减少或优化函数和过程的使用,或保存计算结算到统计表    
    1.2 硬盘子系统的承载能力取决于IOPS处理能力;
        优化:使用Cache技术(web cache与Oracle data buffer)与B-tree索引技术
     使用绑定变量,达到SQL重用,减少语句重复解析、高度使用内存缓存,减少物理I/O; 
     减少表关联、减少分布式事务、不使用分区技术MV技术并行技术及位图索引,以达到快速提交目的。
     热块优化(三种情况),数据块:分布不均匀导致;索引块:创建反向索引,重新分布数据;回滚段:增加回滚段数据块的数量;

OLAP使用注意:
    磁盘子系统的吞吐量,数据量大,加大Cache基本没效果。
    优化:
        增加硬盘个数,加大带宽
使用分区技术、并行技术
大量使用位图索引,物化视图,
对于大量聚合SQL操作,可把优化器模式设置为all_rows
对于大量分页操作,设置为first_rows

SQL优化很重要,全表扫描和索引对性能来说差异很大。


Oracle 10g以前的版本建库过程中可供选择的模板有:
    Data Warehouse (数据仓库)
    General Purpose  (通用目的、一般用途)

    New Database

    Transaction Processing  (事务处理)

Oracle 11g的版本建库过程中可供选择的模板有:

    一般用途或事务处理
    定制数据库
    数据仓库

个人对这些模板的理解为:
联机分析处理(OLAP,On-line Analytical Processing),数据量大,DML少。使用数据仓库模板
联机事务处理(OLTP,On-line Transaction Processing),数据量少,DML频繁。使用一般用途或事务处理模板


联机事务处理(OLTP,On-line Transaction Processing),DML操作频繁,并行事务处理多,但是一般都很短。
决策支持系统(DDS,Decision support system),典型的操作是全表扫描,长查询,长事务,但是一般事务的个数很少,往往是一个事务独占系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值