联机事务处理
出自 MBA智库百科(https://wiki.mbalib.com/)
联机事务处理系统(On-Line Transaction Processing; OLTP)
目录 |
联机事务处理是指针对传统的关系型数据库的操作,主要是基本的、日常事务处理,例如,银行交易。
在联机事务处理系统中,事务是被立即执行的。联机事务处理系统是一种以事务元作为数据处理的单位。它能对数据进行即时更新或其他操作,使系统内的数据总是保持最新状态。在数据处理过程中,用户可将一组保持数据一致性的操作序列指定为一个事务元。
在执行事务元时,系统必须保证它具有下列性质:
1、原子性,即事务元中的操作要么全部执行,要么全部不执行,不允许只执行其中的部分操作。
2、一致性,即事务元的执行必须保证数据库由一个一致的状态过渡到另一个一致的状态。
3、持久性,即事务元对数据的任何更新必须反映在如磁盘这样的非易失性存储器中,即使在系统发生故障或掉电时也能如此。
4、孤立性,即当多个事务元并发执行时,其效果与这些事务元按某一顺序的串行执行时的效果一样。
联机事务处理通过终端、个人计算机或其他设备(如自动提款机等)输入事务元,经系统处理后返回结果。联机事务处理一般具有数百乃至上千个用户,它以交互方式为用户提供多种服务。例如,民航订票系统、银行ATM机系统都是联机事务处理系统的实例。
联机事务处理数据库通常具有以下特征。
(1)支持大量并发用户定期添加和修改数据。例如,银行ATM机系统每天接受成千上万的顾客同时办理业务。
(2)反映随时变化的单位状态,但不保存其历史记录。
(3)包含大量数据,其中包括用于验证事务的大量数据。
(4)具有复杂的结构。
(5)可以进行优化以对事务活动做出响应。
(6)提供用于支持单位日常运营的技术基础结构。
事务处理系统数据库应设计为支持:
很好的数据放置
对于 OLTP 系统,输入/输出瓶颈是一个尤为关心的问题,原因在于修改整个数据库中数据的用户很多。确定数据的可能访问模式,并将经常访问的数据放在一起。在此过程中,可辅以文件组和 RAID(独立磁盘冗余阵列)系统。
缩短事务以将长期锁减至最少,提高并发性
在事务期间,避免用户交互。无论何时,只要有可能,就通过执行单个存储过程来处理整个事务。在事务内对表的引用顺序可能会影响并发性。将对经常访问的表的引用置于事务的末尾,以便将控制锁的持续时间减至最短。
联机备份
OLTP 系统通常的特征是连续操作(一天24小时,一周7天),为达到此目的,停工时间要保持绝对最短。尽管 Microsoft SQL Server 2000可以在数据库正在使用时对其进行备份,但是应将备份过程安排在活动不频繁时进行,以使对用户的影响减至最小。
数据库的高度规范化
尽可能减少冗余信息以提高更新的速度,从而提高并发性。减少数据还可以提高备份的速度,因为只需要备份更少的数据。
很少或没有历史或聚合数据
可以将很少引用的数据归档到单独的数据库中,或者从经常更新的表中移出,并置于仅含历史数据的表中。这将保持表尽可能地小,从而缩短备份时间,改善查询性能。
小心使用索引
每次添加或修改行时,必须更新索引。若要避免对经常更新的表进行过多的索引,索引范围应保持较窄。请用索引优化向导设计索引。
OLTP 系统需要最佳的硬件配置以处理较大并发用户数目和快速响应时间。