OLTP和OLAP浅析
2012-06-02 12:53
211 查看
数据库设计的一个根基就是要弄清楚数据库的类型。
当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing在线事务处理,联机事务处理)、联机分析处理OLAP(On-Line Analytical Processing在线分析处理,联机分析处理)。
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
这两类系统在数据库的设计上是如此不同,甚至有些地方的设计是貌似相悖的。比如OLTP系统强调数据库的内在效率,强调内存各种指标的命中率,强调绑定变量,强调并发操作;而OLAP系统则强调数据分析,强调SQL执行时长,强调磁盘I/O,强调分区等。因为这些区别,在数据库设计的阶段,弄清楚数据库类型是至关重要的,只在在这个前提之下,才能够讨论数据库的具体设计,否则设计必须是盲目的,"皮之不存毛将焉附".
OLTP:用户并发数都很多,但他们只对数据库做很小的操作,数据库侧重于对用户操作的快速响应,这是对数据库最重要的性能要求。
对于一个OLTP来讲,数据库内存的设计显得很重要,如果数据库可以在内存中处理,那么数据库的性能无疑会提高很多。内存的设计通常是通过调整Oracle和内存相关的初始化参数来实现的,比较重要的几个是内存相关的参数,包括SGA的大小(Data Buffer,Shared Pool)、PGA大小(排序区,Hash区等),这些参一个OLTP系统里显得至关重要,OLTP系统是一个数据块变化非常频繁、SQL语句提交非常频繁的系统。对于数据块来说,应尽可能让数据块保存在内存当中,对于SQL来说,尽可能使用变量绑定技术来达到SQL的重用,减少物理I/O和重复的SQL解析,能极大地改善数据库性能。
常见的OLTP系统有:门票在线销售系统,银行交易等。
OLAP:相对于OLTP用户并发数较少,内存可以优化的余地较小,甚至觉得增加CPU处理速度和磁盘I/O速度是最直接的提高数据库性能的方式方式,但这将意味着成本的增加。实际上,用户对OLAP系统性能的期望远远没有对OLTP性能的期望那么高。在OLAP系统中,SQL的优化显得非常重要,分区技术在OLAP数据库中很重要。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
下表列出OLTP和OLAP之间的比较
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),典型的操作是全表扫描,长查询,长事务,但是一般事务的个数很少,往往是一个事务独占系统。
当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing在线事务处理,联机事务处理)、联机分析处理OLAP(On-Line Analytical Processing在线分析处理,联机分析处理)。
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
这两类系统在数据库的设计上是如此不同,甚至有些地方的设计是貌似相悖的。比如OLTP系统强调数据库的内在效率,强调内存各种指标的命中率,强调绑定变量,强调并发操作;而OLAP系统则强调数据分析,强调SQL执行时长,强调磁盘I/O,强调分区等。因为这些区别,在数据库设计的阶段,弄清楚数据库类型是至关重要的,只在在这个前提之下,才能够讨论数据库的具体设计,否则设计必须是盲目的,"皮之不存毛将焉附".
OLTP:用户并发数都很多,但他们只对数据库做很小的操作,数据库侧重于对用户操作的快速响应,这是对数据库最重要的性能要求。
对于一个OLTP来讲,数据库内存的设计显得很重要,如果数据库可以在内存中处理,那么数据库的性能无疑会提高很多。内存的设计通常是通过调整Oracle和内存相关的初始化参数来实现的,比较重要的几个是内存相关的参数,包括SGA的大小(Data Buffer,Shared Pool)、PGA大小(排序区,Hash区等),这些参一个OLTP系统里显得至关重要,OLTP系统是一个数据块变化非常频繁、SQL语句提交非常频繁的系统。对于数据块来说,应尽可能让数据块保存在内存当中,对于SQL来说,尽可能使用变量绑定技术来达到SQL的重用,减少物理I/O和重复的SQL解析,能极大地改善数据库性能。
常见的OLTP系统有:门票在线销售系统,银行交易等。
OLAP:相对于OLTP用户并发数较少,内存可以优化的余地较小,甚至觉得增加CPU处理速度和磁盘I/O速度是最直接的提高数据库性能的方式方式,但这将意味着成本的增加。实际上,用户对OLAP系统性能的期望远远没有对OLTP性能的期望那么高。在OLAP系统中,SQL的优化显得非常重要,分区技术在OLAP数据库中很重要。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
下表列出OLTP和OLAP之间的比较
OLTP | OLAP | |
用户 | 操作人员,低层管理人员 | 决策人员,高级管理人员 |
功能 | 日常操作处理 | 分析决策 |
DB设计 | 面向应用 | 面向主题 |
数据 | 当前的,最新的细节的,二维的分立的 | 历吏的,聚集的,多维的,集成的,统一的 |
存取 | 读/写数十条记录 | 读上百万条记录 |
工作单位 | 简单的事务 | 复杂的查询 |
DB大小 | 100MB-GB | 100GB-TB |
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),典型的操作是全表扫描,长查询,长事务,但是一般事务的个数很少,往往是一个事务独占系统。
相关文章推荐
- 联机事务处理OLTP(on-line transaction processing)和联机分析处理OLAP(On-Line Analytical Processing)
- OLTP和OLAP
- hive和hbase本质区别——hbase本质是OLTP的nosql DB,而hive是OLAP 底层是hdfs,需从已有数据库同步数据到hdfs;hive可以用hbase中的数据,通过hive表映射到hbase表
- SQL OLTP与OLAP 的区别
- OLAP、OLTP的介绍和比较
- OLTP和OLAP有何区别?
- OLTP和OLAP的区别
- 四大OLAP工具选型浅析
- OLAP、OLTP的介绍和比较
- 数据挖掘技术笔记--OLTP与OLAP
- 数据库应用类型:OLTP与OLAP的比较
- OLTP和OLAP有何区别?
- Oracle OLAP 与 OLTP 介绍
- OLAP,OLTP等数据仓库概念
- OLAP和OLTP的区别
- OLTP与OLAP
- 联机事务处理OLTP和联机分析处理OLAP
- OLTP与OLAP比较
- OLTP与OLAP——关系型数据与多维数据
- OLAP、OLTP的介绍和比较