Oracle物理讀與邏輯讀

來源:互聯網
上載者:User

Physical Reads(物理讀):

邏輯讀內容在記憶體中,不需要讀硬碟。

計算公式可以如下:Physical Reads = db block gets + consistent gets;


Logical Reads(邏輯讀):

物理讀是內容不在記憶體中,要去硬碟中讀入記憶體。


db block gets                    --從buffer cache中讀取的block的數量。
consistent gets                --從buffer cache中讀取的undo資料的block的數量。

db block gets 是在current mode下讀取的block數目。current mode下讀取資料是為了保證讀取到的資料是目前時間點上最新的資料,這樣做的目的一般都是為了DML語句的需求,比如需要更新,自然需要知道最新的資料才行;

consistent gets 是在consistent mode下讀取的block數目。consistent mode呢主要是為了保證Oracle資料一致讀的特性,一般都是在select情況下發生,讀到的資料可能是一個實際存在的block,也有可能需要根據scn資訊以及transaction相關資訊以及復原段中資料來構造。


總結:

由於在Oracle中,取資料最後都是從Buffer中取,所以每出現一個physicalreads必然會出現一次 logicalreads,但是這裡有一個需要注意的地方,就是當出現一個physicalreads後接著會有一個logicalreads這裡,實際上這裡只算了1 block!

所以說,如果以這樣的公式(Physical Reads = db block gets + consistent gets;)來計算Physical Reads,那麼邏輯讀就已經包含了物理讀了。

不管是db block gets還是consistent gets,都可能出現了physicalreads和logicalreads兩種情況,也即是說,db block gets與consistent gets兩者已經構成了一次資料庫操作中讀取的所有block的總次數了。

因此,logicalreads自然也就可以通過如下公式算的:

logicalreads= (db block gets + consistent gets) - physicalreads。

由此,自然也就得出了cache命中率的公式:
Hit Ratio = (db block gets + consistent gets - physicalreads) / (db block gets + consistent gets) * 100%;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.