OLTP/OLAP

原文地址:https://www.cnblogs.com/hhandbibi/p/7118740.htmlhtml

 

數據處理大體能夠分紅兩大類:聯機事務處理OLTP(on-line transaction processing)、聯機分析處理OLAP(On-Line Analytical Processing)。OLTP是傳統的關係型數據庫的主要應用,主要是基本的、平常的事務處理,例如銀行交易。OLAP是數據倉庫系統的主要應用,支持複雜的分析操做,側重決策支持,而且提供直觀易懂的查詢結果。 mysql

OLTP 系統強調數據庫內存效率,強調內存各類指標的命令率,強調綁定變量,強調併發操做;
OLAP 系統則強調數據分析,強調SQL執行市場,強調磁盤I/O,強調分區等。 sql

 

 OLTP,也叫聯機事務處理(Online Transaction Processing),表示事務性很是高的系統,通常都是高可用的在線系統,以小的事務以及小的查詢爲主,評估其系統的時候,通常看其每秒執行的Transaction以及Execute SQL的數量。在這樣的系統中,單個數據庫每秒處理的Transaction每每超過幾百個,或者是幾千個,Select 語句的執行量每秒幾千甚至幾萬個。典型的OLTP系統有電子商務系統、銀行、證券等,如美國eBay的業務數據庫,就是很典型的OLTP數據庫。數據庫

 

OLTP比較經常使用的設計與優化方式爲Cache技術與B-tree索引技術,Cache決定了不少語句不須要從磁盤子系統得到數據,因此,Web cache與Oracle data buffer對OLTP系統是很重要的。另外,在索引使用方面,語句越簡單越好,這樣執行計劃也穩定,並且必定要使用綁定變量,減小語句解析,儘可能減小表關聯,儘可能減小分佈式事務,基本不使用分區技術、MV技術、並行技術及位圖索引。由於併發量很高,批量更新時要分批快速提交,以免阻塞的發生。 
OLTP 系統是一個數據塊變化很是頻繁,SQL 語句提交很是頻繁的系統。 對於數據塊來講,應儘量讓數據塊保存在內存當中,對於SQL來講,儘量使用變量綁定技術來達到SQL重用,減小物理I/O 和重複的SQL 解析,從而極大的改善數據庫的性能。併發

 

OLAP,也叫聯機分析處理(Online Analytical Processing)系統,有的時候也叫DSS決策支持系統,就是咱們說的數據倉庫。在這樣的系統中,語句的執行量不是考覈標準,由於一條語句的執行時間可能會很是長,讀取的數據也很是多。因此,在這樣的系統中,考覈的標準每每是磁盤子系統的吞吐量(帶寬),如能達到多少MB/s的流量。分佈式

 

在OLAP系統中,常使用分區技術、並行技術。
    分區技術在OLAP系統中的重要性主要體如今數據庫管理上,好比數據庫加載,能夠經過分區交換的方式實現,備份能夠經過備份分區表空間實現,刪除數據能夠經過分區進行刪除,至於分區在性能上的影響,它可使得一些大表的掃描變得很快(只掃描單個分區)。另外,若是分區結合並行的話,也可使得整個表的掃描會變得很快。總之,分區主要的功能是管理上的方便性,它並不能絕對保證查詢性能的提升,有時候分區會帶來性能上的提升,有時候會下降。
    並行技術除了與分區技術結合外,在Oracle 10g中,與RAC結合實現多節點的同時掃描,效果也很是不錯,可把一個任務,如select的全表掃描,平均地分派到多個RAC的節點上去。性能

聯機分析處理(OLAP,On-line Analytical Processing),數據量大,DML少。使用數據倉庫模板
     聯機事務處理(OLTP,On-line Transaction Processing),數據量少,DML頻繁,並行事務處理多,可是通常都很短。使用通常用途或事務處理模板。優化

     決策支持系統(DDS,Decision support system),典型的操做是全表掃描,長查詢,長事務,可是通常事務的個數不多,每每是一個事務獨佔系統。.net

本站公眾號
   歡迎關注本站公眾號,獲取更多信息