Oracle一致性讀總結

來源:互聯網
上載者:User

sql語句執行時,產生一致性讀。

什麼是邏輯讀? cpu在記憶體中讀這些block的過程就叫做邏輯讀(consistent get),在讀的過程中產生的IO就是邏輯IO.邏輯讀的過程中,是非常消耗cpu資源的.因此,執行sql的邏輯讀越少越好.sql調優必須調整buffer get很大的sql語句

logical reads= consistent gets + db block gets,邏輯讀其實是DB BLOCK GETS 和 consistents Gets 之和

DB block gets---當前請求的塊數目

Consistent gets---資料請求總數在復原段buffer中的資料一致性讀所需要的資料區塊

Physical Reads---從磁碟讀取資料區塊的數量(主要原因:buffer中不存在這些塊;全表掃描;磁碟排序)

對於整個系統而言,我們用AWR報告為例。

1. 首先要關注的自然是Elapsed Time最高的那些,執行時間最長通常意味著消耗了更多的資源(無論這個資源是物理讀還是邏輯讀)

2. 其次關注的是Buffer Gets最多的SQL,這就是DB block gets+Consistent gets最多的SQL。大量的不必要的buffer gets會導致CPU time升高,在一個健康並且負載不低並且並不是以計算為主的系統中,CPU time佔據首位的Top event通常是需要關注的。

3. 再其次關注Physical Reads最多的,並不是說物理讀多的不容易調整,才放在後面關注,實際上是物理讀通常都被基本的調優手段給調整完了,如果一個OLTP系統有大量的物理讀,那麼應該早就掛掉了,這是很明顯的效能問題,會優先就調整好。

Oracle讀取資料的方式有2種

1.物理讀即是把資料從磁碟讀入到buffer catch的過程。

   通常情況下是,如果需要資料的時候發現不存在於buffer catch當中,即oracle就會執行物理讀。

2.邏輯讀取

邏輯讀指的就是從(或者視圖從)Buffer Cache中讀取資料區塊。按照訪問資料區塊的模式不同,可以分為即時讀(Current Read)和一致性讀(Consistent Read)。 

(1)即時讀 db block gets

   即時讀即讀取資料區塊當前的最新資料。任何時候在Buffer Cache中都只有一份當前資料區塊。即時讀通常發生在對資料進行修改、刪除操作時。這時,進程會給資料加上行級鎖,並且標識資料為“髒”資料。

(2)一致性讀 consistent get

     Oracle是一個多使用者系統。當一個會話開始讀取資料還未結束讀取之前,可能會有其他會話修改它將要讀取的資料。如果會話讀取到修改後的資料,就會造成資料的不一致。

    一致性讀就是為了保證資料的一致性。在Buffer Cache中的資料區塊上都會有最後一次修改資料區塊時的SCN。

2.為什麼要一致性讀,為了保持資料的一致性

   如果一個事務需要修改資料區塊中資料,會先在復原段中儲存一份修改前資料和SCN的資料區塊,然後再更新Buffer Cache中的資料區塊的資料及其SCN,並標識其為“髒”資料。

   當其他進程讀取資料區塊時,會先比較資料區塊上的SCN和進程自己的SCN。如果資料區塊上的SCN小於等於進程本身的SCN,則直接讀取資料區塊上的資料;

   如果資料區塊上的SCN大於進程本身的SCN,則會從復原段中找出修改前的資料區塊讀取資料。通常,普通查詢都是一致性讀。

  • 1
  • 2
  • 下一頁

聯繫我們

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