Oracle 10g DBCA建庫四個選項的區別------ 一般用途 交易處理 定製資料庫資料倉儲

來源:互聯網
上載者:User

一般用途=兼顧OLTP和OLAP
   交易處理=OLTP
   資料倉儲=OLAP
   定製資料庫=自訂

***************************黃金分割線(深入探析)*******************************
Oracle OLAP 與 OLTP 介紹 

資料處理大致可以分成兩大類:聯機交易處理OLTP(on-line transaction processing)、線上分析處理OLAP(On-Line Analytical Processing)。OLTP是傳統的關係型資料庫的主要應用,主要是基本的、日常的交易處理,例如銀行交易。OLAP是資料倉儲系統的主要應用,支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。
OLTP 系統強調資料庫記憶體效率,強調記憶體各種指標的命令率,強調綁定變數,強調並行作業;OLAP 系統則強調資料分析,強調SQL執行市場,強調磁碟I/O,強調分區等。
 OLTP與OLAP之間的比較:  什麼是OLTP 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  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;
 
 
分開設計與最佳化
在設計上要特別注意,如在高可用的OLTP環境中,不要盲目地把OLAP的技術拿過來用。
如分區技術,假設不是大範圍地使用分區關鍵字,而採用其它的欄位作為where條件,那麼,如果是本地索引,將不得不掃描多個索引,而效能變得更為低下。如果是全域索引,又失去分區的意義。
並行技術也是如此,一般在完成大型任務時才使用,如在實際生活中,翻譯一本書,可以先安排多個人,每個人翻譯不同的章節,這樣可以提高翻譯速度。如果只是翻譯一頁書,也去分配不同的人翻譯不同的行,再組合起來,就沒必要了,因為在分配工作的時間裡,一個人或許早就翻譯完了。
位元影像索引也是一樣,如果用在OLTP環境中,很容易造成阻塞與死結。但是,在OLAP環境中,可能會因為其特有的特性,提高OLAP的查詢速度。MV也是基本一樣,包括觸發器等,在DML頻繁的OLTP系統上,很容易成為瓶頸,甚至是Library Cache等待,而在OLAP環境上,則可能會因為使用恰當而提高查詢速度。  對於OLAP系統,在記憶體上可最佳化的餘地很小,增加CPU 處理速度和磁碟I/O 速度是最直接的提高資料庫效能的方法,當然這也意味著系統成本的增加。  比如我們要對幾億條或者幾十億條資料進行彙總處理,這種海量的資料,全部放在記憶體中操作是很難的,同時也沒有必要,因為這些資料快很少重用,緩衝起來也沒有實際意義,而且還會造成物理I/O相當大。 所以這種系統的瓶頸往往是磁碟I/O上面的。  對於OLAP系統,SQL 的最佳化非常重要,因為它的資料量很大,做全表掃描和索引對效能上來說差異是非常大的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.