联机事务处理过程(On-Line Transaction Processing, OLTP),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。
联机事务处理系统是一种以事务元作为数据处理的单位、人机交互的计算机应用系统。它能对数据进行即时更新或其他操作,系统内的数据总是保持在最新状态。用户可将一组保持数据一致性的操作序列指定为一个事务元,通过终端、个人计算机或其他设备输入事务元,经系统处理后返回结果,应用于飞机订票、银行出纳、股票交易、超市销售、饭店前后管理等。
这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理结果的一个重要指标是系统性能,具体体现为实时请求-响应时间(Response Time),即用户在终端上输入数据之后,到计算机对这个请求给出答复所需要的时间。OLTP是由前台、应用、数据库共同完成的,处理快慢以及处理程度取决于数据库引擎、服务器、应用引擎。OLTP数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。
OLTP的特征:
- 支持大量并发用户定期添加和修改数据。
- 反映随时变化的单位状态,但不保存其历史记录。
- 包含大量数据,其中包括用于验证事务的大量数据。
- 可以进行优化以对事务活动做出响应。
- 提供用于支持单位日常运营的技术基础结构。
- 个别事务能够很快地完成,并且只需访问相对较少的数据。
- 实时性要求高。
- 交互一般是确定的,所以OLTP是对确定性的数据进行存取。
- 并发性要求高并且严格的要求事务的完整、安全性。
OLTP处理的数据是高度结构化的,涉及的事务比较简单,因此复杂的表关联不会严重影响性能。反之,决策支持系统的一个查询可能涉及数万条记录,这时复杂的连接操作会严重影响性能。在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后,其他用户就只能等待,获取这个数据块的用户越多,等待就越明显。 这就是热块的问题。 这种热块可能是数据块,也可能是回滚端块。 对于数据块来讲,通常是数据库的数据分布不均匀导致,如果是索引的数据块,可以考虑创建反向所以来达到重新分布数据的目的,对于回滚段数据块,可以适当多增加几个回滚段来避免这种争用。
资料来源:
董昭和主编.高新技术常用名词注释:科学技术文献出版社,2003年02月第1版
周苏,王硕苹主编.大数据时代管理信息系统:中国铁道出版社,2017.01
OLAP、OLTP的介绍和比较 https://www.cnblogs.com/hhandbibi/p/7118740.html
Online transaction processing (OLTP) https://docs.microsoft.com/en-us/azure/architecture/data-guide/relational-data/online-transaction-processing