真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

OLAP、OLTP的介紹和比較

轉(zhuǎn): https://www.cnblogs.com/hhandbibi/p/7118740.html

在靈臺(tái)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),營(yíng)銷型網(wǎng)站,成都外貿(mào)網(wǎng)站制作,靈臺(tái)網(wǎng)站建設(shè)費(fèi)用合理。

OLTP與OLAP的介紹

    數(shù)據(jù)處理大致可以分成兩大類:聯(lián)機(jī)事務(wù)處理OLTP(on-line transaction processing)、聯(lián)機(jī)分析處理OLAP(On-Line Analytical Processing)。OLTP是傳統(tǒng)的關(guān)系型 數(shù)據(jù)庫(kù) 的主要應(yīng)用,主要是基本的、日常的事務(wù)處理,例如銀行交易。OLAP是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的主要應(yīng)用,支持復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。 

OLTP  系統(tǒng)強(qiáng)調(diào)數(shù)據(jù)庫(kù)內(nèi)存效率,強(qiáng)調(diào)內(nèi)存各種指標(biāo)的命令率,強(qiáng)調(diào)綁定變量,強(qiáng)調(diào)并發(fā)操作;
OLAP  系統(tǒng)則強(qiáng)調(diào)數(shù)據(jù)分析,強(qiáng)調(diào)SQL執(zhí)行市場(chǎng),強(qiáng)調(diào)磁盤I/O,強(qiáng)調(diào)分區(qū)等。 

OLTP與OLAP之間的比較 :   

     OLTP,也叫聯(lián)機(jī)事務(wù)處理(Online Transaction Processing) ,表示事務(wù)性非常高的系統(tǒng),一般都是高可用的在線系統(tǒng),以小的事務(wù)以及小的查詢?yōu)橹鳎u(píng)估其系統(tǒng)的時(shí)候,一般看其每秒執(zhí)行的Transaction以及Execute SQL的數(shù)量。在這樣的系統(tǒng)中,單個(gè)數(shù)據(jù)庫(kù)每秒處理的Transaction往往超過幾百個(gè),或者是幾千個(gè),Select 語(yǔ)句的執(zhí)行量每秒幾千甚至幾萬(wàn)個(gè)。典型的OLTP系統(tǒng)有電子商務(wù)系統(tǒng)、銀行、證券等,如美國(guó)eBay的業(yè)務(wù)數(shù)據(jù)庫(kù),就是很典型的OLTP數(shù)據(jù)庫(kù)。
OLTP系統(tǒng)最容易出現(xiàn)瓶頸的地方就是CPU與磁盤子系統(tǒng)。
(1)CPU出現(xiàn)瓶頸常表現(xiàn)在邏輯讀總量與計(jì)算性函數(shù)或者是過程上,邏輯讀總量等于單個(gè)語(yǔ)句的邏輯讀乘以執(zhí)行次數(shù),如果單個(gè)語(yǔ)句執(zhí)行速度雖然很快,但是執(zhí)行次數(shù)非常多,那么,也可能會(huì)導(dǎo)致很大的邏輯讀總量。設(shè)計(jì)的方法與優(yōu)化的方法就是減少單個(gè)語(yǔ)句的邏輯讀,或者是減少它們的執(zhí)行次數(shù)。另外,一些計(jì)算型的函數(shù),如自定義函數(shù)、decode等的頻繁使用,也會(huì)消耗大量的CPU時(shí)間,造成系統(tǒng)的負(fù)載升高,正確的設(shè)計(jì)方法或者是優(yōu)化方法,需要盡量避免計(jì)算過程,如保存計(jì)算結(jié)果到統(tǒng)計(jì)表就是一個(gè)好的方法。
(2)磁盤子系統(tǒng)在OLTP環(huán)境中,它的承載能力一般取決于它的IOPS處理能力. 因?yàn)樵贠LTP環(huán)境中,磁盤物理讀一般都是db file sequential read,也就是單塊讀,但是這個(gè)讀的次數(shù)非常頻繁。如果頻繁到磁盤子系統(tǒng)都不能承載其IOPS的時(shí)候,就會(huì)出現(xiàn)大的性能問題。
    OLTP比較常用的設(shè)計(jì)與優(yōu)化方式為Cache技術(shù)與B-tree索引技術(shù),Cache決定了很多語(yǔ)句不需要從磁盤子系統(tǒng)獲得數(shù)據(jù),所以,Web cache與Oracle data buffer對(duì)OLTP系統(tǒng)是很重要的。另外,在索引使用方面,語(yǔ)句越簡(jiǎn)單越好,這樣執(zhí)行計(jì)劃也穩(wěn)定,而且一定要使用綁定變量,減少語(yǔ)句解析,盡量減少表關(guān)聯(lián),盡量減少分布式事務(wù),基本不使用分區(qū)技術(shù)、MV技術(shù)、并行技術(shù)及位圖索引。因?yàn)椴l(fā)量很高,批量更新時(shí)要分批快速提交,以避免阻塞的發(fā)生。 
OLTP 系統(tǒng)是一個(gè)數(shù)據(jù)塊變化非常頻繁,SQL 語(yǔ)句提交非常頻繁的系統(tǒng)。 對(duì)于數(shù)據(jù)塊來(lái)說(shuō),應(yīng)盡可能讓數(shù)據(jù)塊保存在內(nèi)存當(dāng)中,對(duì)于SQL來(lái)說(shuō),盡可能使用變量綁定技術(shù)來(lái)達(dá)到SQL重用,減少物理I/O 和重復(fù)的SQL 解析,從而極大的改善數(shù)據(jù)庫(kù)的性能。
    這里影響性能除了綁定變量,還有可能是熱快(hot block)。 當(dāng)一個(gè)塊被多個(gè)用戶同時(shí)讀取時(shí),Oracle 為了維護(hù)數(shù)據(jù)的一致性,需要使用Latch來(lái)串行化用戶的操作。當(dāng)一個(gè)用戶獲得了latch后,其他用戶就只能等待,獲取這個(gè)數(shù)據(jù)塊的用戶越多,等待就越明顯。 這就是熱快的問題。 這種熱快可能是數(shù)據(jù)塊,也可能是回滾端塊。 對(duì)于數(shù)據(jù)塊來(lái)講,通常是數(shù)據(jù)庫(kù)的數(shù)據(jù)分布不均勻?qū)е?,如果是索引的?shù)據(jù)塊,可以考慮創(chuàng)建反向索引來(lái)達(dá)到重新分布數(shù)據(jù)的目的,對(duì)于回滾段數(shù)據(jù)塊,可以適當(dāng)多增加幾個(gè)回滾段來(lái)避免這種爭(zhēng)用。 
     OLAP,也叫聯(lián)機(jī)分析處理(Online Analytical Processing) 系統(tǒng),有的時(shí)候也叫DSS決策支持系統(tǒng),就是我們說(shuō)的數(shù)據(jù)倉(cāng)庫(kù)。在這樣的系統(tǒng)中,語(yǔ)句的執(zhí)行量不是考核標(biāo)準(zhǔn),因?yàn)橐粭l語(yǔ)句的執(zhí)行時(shí)間可能會(huì)非常長(zhǎng),讀取的數(shù)據(jù)也非常多。所以,在這樣的系統(tǒng)中,考核的標(biāo)準(zhǔn)往往是磁盤子系統(tǒng)的吞吐量(帶寬),如能達(dá)到多少M(fèi)B/s的流量。
    磁盤子系統(tǒng)的吞吐量則往往取決于磁盤的個(gè)數(shù),這個(gè)時(shí)候,Cache基本是沒有效果的,數(shù)據(jù)庫(kù)的讀寫類型基本上是db file scattered read與direct path read/write。應(yīng)盡量采用個(gè)數(shù)比較多的磁盤以及比較大的帶寬,如4Gb的光纖接口。
在OLAP系統(tǒng)中,常使用分區(qū)技術(shù)、并行技術(shù)。
    分區(qū)技術(shù)在OLAP系統(tǒng)中的重要性主要體現(xiàn)在數(shù)據(jù)庫(kù)管理上,比如數(shù)據(jù)庫(kù)加載,可以通過分區(qū)交換的方式實(shí)現(xiàn),備份可以通過備份分區(qū)表空間實(shí)現(xiàn),刪除數(shù)據(jù)可以通過分區(qū)進(jìn)行刪除,至于分區(qū)在性能上的影響,它可以使得一些大表的掃描變得很快(只掃描單個(gè)分區(qū))。另外,如果分區(qū)結(jié)合并行的話,也可以使得整個(gè)表的掃描會(huì)變得很快??傊?,分區(qū)主要的功能是管理上的方便性,它并不能絕對(duì)保證查詢性能的提高,有時(shí)候分區(qū)會(huì)帶來(lái)性能上的提高,有時(shí)候會(huì)降低。
    并行技術(shù)除了與分區(qū)技術(shù)結(jié)合外,在Oracle 10g中,與RAC結(jié)合實(shí)現(xiàn)多節(jié)點(diǎn)的同時(shí)掃描,效果也非常不錯(cuò),可把一個(gè)任務(wù),如select的全表掃描,平均地分派到多個(gè)RAC的節(jié)點(diǎn)上去。
    在OLAP系統(tǒng)中,不需要使用綁定(BIND)變量,因?yàn)檎麄€(gè)系統(tǒng)的執(zhí)行量很小,分析時(shí)間對(duì)于執(zhí)行時(shí)間來(lái)說(shuō),可以忽略,而且可避免出現(xiàn)錯(cuò)誤的執(zhí)行計(jì)劃。但是OLAP中可以大量使用位圖索引,物化視圖,對(duì)于大的事務(wù),盡量尋求速度上的優(yōu)化,沒有必要像OLTP要求快速提交,甚至要刻意減慢執(zhí)行的速度。
    綁定變量真正的用途是在OLTP系統(tǒng)中,這個(gè)系統(tǒng)通常有這樣的特點(diǎn),用戶并發(fā)數(shù)很大,用戶的請(qǐng)求十分密集,并且這些請(qǐng)求的SQL 大多數(shù)是可以重復(fù)使用的。
    對(duì)于OLAP系統(tǒng)來(lái)說(shuō),絕大多數(shù)時(shí)候數(shù)據(jù)庫(kù)上運(yùn)行著的是報(bào)表作業(yè),執(zhí)行基本上是聚合類的SQL 操作,比如group by,這時(shí)候,把優(yōu)化器模式設(shè)置為all_rows是恰當(dāng)?shù)摹?而對(duì)于一些分頁(yè)操作比較多的網(wǎng)站類數(shù)據(jù)庫(kù),設(shè)置為first_rows會(huì)更好一些。 但有時(shí)候?qū)τ贠LAP 系統(tǒng),我們又有分頁(yè)的情況下,我們可以考慮在每條SQL 中用hint。 如:
    Select  a.* from table a;
分開設(shè)計(jì)與優(yōu)化
    在設(shè)計(jì)上要特別注意,如在高可用的OLTP環(huán)境中,不要盲目地把OLAP的技術(shù)拿過來(lái)用。
    如分區(qū)技術(shù),假設(shè)不是大范圍地使用分區(qū)關(guān)鍵字,而采用其它的字段作為where條件,那么,如果是本地索引,將不得不掃描多個(gè)索引,而性能變得更為低下。如果是全局索引,又失去分區(qū)的意義。
    并行技術(shù)也是如此,一般在完成大型任務(wù)時(shí)才使用,如在實(shí)際生活中,翻譯一本書,可以先安排多個(gè)人,每個(gè)人翻譯不同的章節(jié),這樣可以提高翻譯速度。如果只是翻譯一頁(yè)書,也去分配不同的人翻譯不同的行,再組合起來(lái),就沒必要了,因?yàn)樵诜峙涔ぷ鞯臅r(shí)間里,一個(gè)人或許早就翻譯完了。
    位圖索引也是一樣,如果用在OLTP環(huán)境中,很容易造成阻塞與死鎖。但是,在OLAP環(huán)境中,可能會(huì)因?yàn)槠涮赜械奶匦?,提高OLAP的查詢速度。MV也是基本一樣,包括觸發(fā)器等,在DML頻繁的OLTP系統(tǒng)上,很容易成為瓶頸,甚至是Library Cache等待,而在OLAP環(huán)境上,則可能會(huì)因?yàn)槭褂们‘?dāng)而提高查詢速度。
    對(duì)于OLAP系統(tǒng),在內(nèi)存上可優(yōu)化的余地很小,增加CPU 處理速度和磁盤I/O 速度是最直接的提高數(shù)據(jù)庫(kù)性能的方法,當(dāng)然這也意味著系統(tǒng)成本的增加。      
    比如我們要對(duì)幾億條或者幾十億條數(shù)據(jù)進(jìn)行聚合處理,這種海量的數(shù)據(jù),全部放在內(nèi)存中操作是很難的,同時(shí)也沒有必要,因?yàn)檫@些數(shù)據(jù)快很少重用,緩存起來(lái)也沒有實(shí)際意義,而且還會(huì)造成物理I/O相當(dāng)大。 所以這種系統(tǒng)的瓶頸往往是磁盤I/O上面的。
    對(duì)于OLAP系統(tǒng),SQL 的優(yōu)化非常重要,因?yàn)樗臄?shù)據(jù)量很大,做全表掃描和索引對(duì)性能上來(lái)說(shuō)差異是非常大的。
其他
    Oracle 10g以前的版本建庫(kù)過程中可供選擇的模板有:
        Data Warehouse (數(shù)據(jù)倉(cāng)庫(kù))
        General Purpose  (通用目的、一般用途)
        New Database
        Transaction Processing  (事務(wù)處理)
    Oracle 11g的版本建庫(kù)過程中可供選擇的模板有:
        一般用途或事務(wù)處理
        定制數(shù)據(jù)庫(kù)

        數(shù)據(jù)倉(cāng)庫(kù)

個(gè)人對(duì)這些模板的理解為:

     聯(lián)機(jī)分析處理(OLAP,On-line Analytical Processing),數(shù)據(jù)量大,DML少。使用數(shù)據(jù)倉(cāng)庫(kù)模板
     聯(lián)機(jī)事務(wù)處理(OLTP,On-line Transaction Processing),數(shù)據(jù)量少,DML頻繁,并行事務(wù)處理多,但是一般都很短。使用一般用途或事務(wù)處理模板。

     決策支持系統(tǒng)(DDS,Decision support system),典型的操作是全表掃描,長(zhǎng)查詢,長(zhǎng)事務(wù),但是一般事務(wù)的個(gè)數(shù)很少,往往是一個(gè)事務(wù)獨(dú)占系統(tǒng)。


文章名稱:OLAP、OLTP的介紹和比較
文章起源:http://weahome.cn/article/ggpicc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部