`

OLTP与OLAP的介绍

 
阅读更多
数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。

OLTP与OLAP之间的比较:


OLTP,也叫联机事务处理(Online Transaction Processing),表示事务性非常高的系统,一般都是高可用的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看其每秒执行的Transaction以及Execute SQL的数量。在这样的系统中,单个数据库每秒处理的Transaction往往超过几百个,或者是几千个,Select 语句的执行量每秒几千甚至几万个。典型的OLTP系统有电子商务系统、银行、证券等,如美国eBay的业务数据库,就是很典型的OLTP数据库。
OLTP系统最容易出现瓶颈的地方就是CPU与磁盘子系统。
(1)CPU出现瓶颈常表现在逻辑读总量与计算性函数或者是过程上,逻辑读总量等于单个语句的逻辑读乘以执行次数,如果单个语句执行速度虽然很快,但是执行次数非常多,那么,也可能会导致很大的逻辑读总量。设计的方法与优化的方法就是减少单个语句的逻辑读,或者是减少它们的执行次数。另外,一些计算型的函数,如自定义函数、decode等的频繁使用,也会消耗大量的CPU时间,造成系统的负载升高,正确的设计方法或者是优化方法,需要尽量避免计算过程,如保存计算结果到统计表就是一个好的方法。
(2)磁盘子系统在OLTP环境中,它的承载能力一般取决于它的IOPS处理能力. 因为在OLTP环境中,磁盘物理读一般都是db file sequential read,也就是单块读,但是这个读的次数非常频繁。如果频繁到磁盘子系统都不能承载其IOPS的时候,就会出现大的性能问题。
    OLTP比较常用的设计与优化方式为Cache技术与B-tree索引技术,Cache决定了很多语句不需要从磁盘子系统获得数据,所以,Web cache与Oracle data buffer对OLTP系统是很重要的。另外,在索引使用方面,语句越简单越好,这样执行计划也稳定,而且一定要使用绑定变量,减少语句解析,尽量减少表关联,尽量减少分布式事务,基本不使用分区技术、MV技术、并行技术及位图索引。因为并发量很高,批量更新时要分批快速提交,以避免阻塞的发生。
OLTP 系统是一个数据块变化非常频繁,SQL 语句提交非常频繁的系统。 对于数据块来说,应尽可能让数据块保存在内存当中,对于SQL来说,尽可能使用变量绑定技术来达到SQL重用,减少物理I/O 和重复的SQL 解析,从而极大的改善数据库的性能。
    这里影响性能除了绑定变量,还有可能是热快(hot block)。 当一个块被多个用户同时读取时,Oracle 为了维护数据的一致性,需要使用Latch来串行化用户的操作。当一个用户获得了latch后,其他用户就只能等待,获取这个数据块的用户越多,等待就越明显。 这就是热快的问题。 这种热快可能是数据块,也可能是回滚端块。 对于数据块来讲,通常是数据库的数据分布不均匀导致,如果是索引的数据块,可以考虑创建反向索引来达到重新分布数据的目的,对于回滚段数据块,可以适当多增加几个回滚段来避免这种争用。

OLAP,也叫联机分析处理(Online Analytical Processing)系统,有的时候也叫DSS决策支持系统,就是我们说的数据仓库。在这样的系统中,语句的执行量不是考核标准,因为一条语句的执行时间可能会非常长,读取的数据也非常多。所以,在这样的系统中,考核的标准往往是磁盘子系统的吞吐量(带宽),如能达到多少MB/s的流量。
    磁盘子系统的吞吐量则往往取决于磁盘的个数,这个时候,Cache基本是没有效果的,数据库的读写类型基本上是db file scattered read与direct path read/write。应尽量采用个数比较多的磁盘以及比较大的带宽,如4Gb的光纤接口。

在OLAP系统中,常使用分区技术、并行技术。
分区技术在OLAP系统中的重要性主要体现在数据库管理上,比如数据库加载,可以通过分区交换的方式实现,备份可以通过备份分区表空间实现,删除数据可以通过分区进行删除,至于分区在性能上的影响,它可以使得一些大表的扫描变得很快(只扫描单个分区)。另外,如果分区结合并行的话,也可以使得整个表的扫描会变得很快。总之,分区主要的功能是管理上的方便性,它并不能绝对保证查询性能的提高,有时候分区会带来性能上的提高,有时候会降低。
    并行技术除了与分区技术结合外,在Oracle 10g中,与RAC结合实现多节点的同时扫描,效果也非常不错,可把一个任务,如select的全表扫描,平均地分派到多个RAC的节点上去。
    在OLAP系统中,不需要使用绑定(BIND)变量,因为整个系统的执行量很小,分析时间对于执行时间来说,可以忽略,而且可避免出现错误的执行计划。但是OLAP中可以大量使用位图索引,物化视图,对于大的事务,尽量寻求速度上的优化,没有必要像OLTP要求快速提交,甚至要刻意减慢执行的速度。
    绑定变量真正的用途是在OLTP系统中,这个系统通常有这样的特点,用户并发数很大,用户的请求十分密集,并且这些请求的SQL 大多数是可以重复使用的。
    对于OLAP系统来说,绝大多数时候数据库上运行着的是报表作业,执行基本上是聚合类的SQL 操作,比如group by,这时候,把优化器模式设置为all_rows是恰当的。 而对于一些分页操作比较多的网站类数据库,设置为first_rows会更好一些。 但有时候对于OLAP 系统,我们又有分页的情况下,我们可以考虑在每条SQL 中用hint。 如:
    Select  a.* from table a;

参考:http://blog.csdn.net/zhangzheng0413/article/details/8271322/
分享到:
评论

相关推荐

    OLTP与OLAP差异

    《OLTP与OLAP:两种数据处理方式的深度解析》 在信息技术领域,OLTP(联机事务处理)和OLAP(联机分析处理)是两种核心的数据处理方式,它们各自服务于不同类型的业务需求,拥有截然不同的特性和应用场景。本文旨在...

    基于Oracle的OLTP与OLAP数据库设计及实现

    文章“基于Oracle的OLTP与OLAP数据库设计及实现”涉及了OLTP与OLAP系统设计的关键技术。首先,文章介绍了OLAP和OLTP的基本概念以及它们的不同应用点。OLTP系统由于需要处理大量的并发用户请求,因此在设计时更侧重于...

    基于Oracle的OLTP与OLAP数据库内存设计和优化.pdf

    基于Oracle的OLTP与OLAP数据库内存设计和优化.pdf

    OLTP和OLAP技术融合架构实践.pptx

    【OLTP与OLAP技术融合架构实践】 在线事务处理(OLTP)和在线分析处理(OLAP)是两种不同但互补的数据处理模式。OLTP主要关注于日常事务处理,如银行交易、电子商务订单等,强调高并发、低延迟和数据的一致性。而...

    OLTP与OLAP的区别精简总结

    ### OLTP与OLAP的区别精简总结 #### 当今数据处理分类 当今的数据处理领域大致可以分为两大类:联机事务处理(Online Transaction Processing,简称OLTP)与联机分析处理(Online Analytical Processing,简称OLAP...

    基于Oracle的OLTP与OLAP数据库设计及实现.pdf

    在本文中,我们将介绍OLTP和OLAP数据库设计及实现的概念,并讨论基于Oracle的OLTP和OLAP数据库设计技术。 OLTP(On-Line Transaction Processing)和OLAP(On-Line Analytical Processing)是两种不同的数据库应用...

    OLTP与OLAP系统数据库建模思考与实践

    ### OLTP与OLAP系统数据库建模思考与实践 #### 一、引言 随着信息技术的发展,企业对数据处理...通过本文的介绍,希望能帮助读者更好地理解OLTP与OLAP系统的特点及其在数据库建模中的应用,为企业数据处理提供参考。

    数据处理OLTP与OLAP的概念.pdf

    数据处理领域中的OLTP(在线事务处理)与OLAP(在线分析处理)是两种关键的系统类型,分别针对不同的业务需求。OLTP是传统的关系型数据库的主要应用,主要用于日常的事务处理,例如银行交易,强调高并发、快速响应...

    6-5+腾讯广告OLTP_OLAP实践.pdf

    本文主要介绍了腾讯广告在OLTP(在线事务处理)和OLAP(在线分析处理)方面的实践,涉及到的技术栈包括Spark Streaming、HBase、Phoenix、Hermes等,并讨论了如何优化数据处理流程以提升效率和数据一致性。...

    OLTP和OLAP的区别

    ### OLTP与OLAP的区别详解 #### 一、引言 在现代信息技术领域,随着数据量的爆炸性增长以及业务需求的多样化发展,如何高效、准确地管理和利用这些数据成为了企业和组织关注的重点。在此背景下,两种重要的数据...

    OLTP和OLAP技术融合的探索实践_梁福坤@饿了么 百度外卖.pdf

    OLTP(在线事务处理)与OLAP(在线分析处理)是数据库领域的两项核心技术,它们分别服务于不同的业务需求场景。OLTP是面向交易的处理过程,强调的是快速响应用户操作,其特点包括数据量少、面向应用、并行事务处理、...

    TutorialForDataSciencte#ds-gitbook_build#OLTP与OLAP1

    OLTP与OLAP数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)联机分析处理OLAP(On-L

    OLTP与OLAP业务系统的Oracle优化思路[归类].pdf

    【OLTP与OLAP业务系统的Oracle优化思路】 Oracle数据库在OLTP(联机事务处理)和OLAP(联机分析处理)系统中的优化策略各有侧重,主要体现在对系统特性的理解和针对不同业务需求的调整。 1. **数据库业务类型分类*...

    OLTP和OLAP技术融合的探索实践_.zip

    在数据库领域,OLTP(在线事务处理)和OLAP(在线分析处理)是两种关键的技术类型,它们分别服务于不同的业务需求。OLTP主要用于处理日常的事务性操作,如银行交易、零售销售等实时数据录入和查询,而OLAP则专注于...

    Bats面向OLTP、OLAP、批处理、流处理场景的大一统SQL引擎

    其中,Bats作为一个面向OLTP(在线事务处理)、OLAP(在线分析处理)、批处理和流处理场景的大一统SQL引擎,为数据处理提供了高效且灵活的解决方案。本文将深入探讨Bats的关键特性、应用场景及其技术优势。 首先,...

    数据库 OLAP、OLTP的介绍和比较

    在线事务处理(OLTP)和在线分析处理(OLAP)是数据库系统中的两种核心操作模式,它们各自针对不同的业务需求。 OLTP,全称为在线事务处理,是大多数企业日常运营的核心,尤其适用于银行、电子商务、证券等需要频繁...

    PG专场:数据在PG中的升华 -流计算,OLTP,OLAP(德歌).pdf

    PG,即PostgreSQL,是一种开源的对象关系型数据库系统,以其稳定性、可靠性、高性能而著称,广泛应用于OLTP(在线事务处理)、OLAP(在线分析处理)和流计算等多个领域。 在OLTP领域,PostgreSQL提供了一套完善的...

    Tianlesoftware 学习 Oracle

    2. OLTP与OLAP介绍: - OLTP(Online Transaction Processing)在线事务处理:指的是处理大量短小的、实时的、随机访问的事务处理系统。OLTP系统强调快速、准确地记录事务,保证数据的一致性。 - OLAP(Online ...

    蝙蝠:面向OLTP,OLAP,批处理,流处理场景的大一统SQL引擎

    蝙蝠面向OLTP,OLAP,批处理,流处理场景的大一统SQL引擎开发环境JDK 1.8以上Maven的3.3+需要先执行mvn eclipse:eclipse,否则项目里用到的一些java源文件会发现,这些java源文件是通过模板生成的。模块依赖关系...

    Oracle很详细的讲解

    1.1 ORACLE OLAP与OLTP介绍: 1.1.1 OLTP(Online Transaction Processing)即联机事务处理,它是一种事务驱动的数据库系统,强调数据的实时处理能力,通常用于日常事务,如银行系统。OLTP的特点是高并发和短事务...

Global site tag (gtag.js) - Google Analytics