聯機事務處理
出自 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 系統需要最佳的硬體配置以處理較大併發用戶數目和快速響應時間。