Oracle 共用池和資料庫高速緩衝區,引出SQL執行過程

來源:互聯網
上載者:User

標籤:

        共用池在資料庫中可以說是相當重要動力資源,關係著資料庫的效能瓶頸。什麼是共用池呢?        共用池是記憶體結構中SGA(系統全域區)的一部分,包含了:庫緩衝區、資料字典緩衝區、伺服器結果緩衝區、預留池,也是著四個區組成了共用池,這四個區的功能就是共用池的功能。        庫緩衝區        共用SQL區:存放執行計畫和解析樹,當使用者執行一條SQL語句時,共用池會根據SQL語句的複雜程度分出一定的記憶體給使用者,當使用者再次執行相同的SQL語句時,不必再次進行解析,提高執行語句的執行效率。類似於古代將領帶兵打仗,皇帝就是使用者,把將領當成共用池,將領帶大家走的路就是SQL語句,不用再自己摸索路線。        私人SQL區:裡面主要存了一些SQL語句的環境設定,比如SQL語句的一些綁定變數、環境和會話參數,還有PL/SQL程式包的局部變數、全域變數和包變數。共用池裡一個SQL語句的共用SQL區能被多個私人SQL區共有。即很多人能同時走這條路。        資料字典緩衝區        資料字典存在於SYSTEM資料表空間中,資料庫中訪問最頻繁的就是它了,裡面有表、視圖等資訊,資料庫會藉助資料字典對SQL語句進行解析,它分為兩個部分存放,一部分以行(ROW)的方式存在資料字典緩衝區中,另一部分以塊(BLOCK)的方式存放在庫緩衝區中,這兩個部分共同組成資料字典緩衝區,並被所有的使用者進程共用。       伺服器結果緩衝區       這也是共用池裡顯目的一點,將所有正確的SQL查詢和函數結果緩衝到伺服器結果緩衝區裡, 當多個使用者執行相同的SQL語句時,只要它有過一次解析和執行計畫,那麼速度是與第一次完全不通檔次的。        伺服器結果緩衝區和資料庫高速緩衝區有所區別,前者是緩衝到共用池裡,不經過任何加工;後者需從磁碟讀到記憶體,也就是經過加工。        預留池        如果有大片連續的記憶體配置,都會優先選擇預留池。        共用池在不同的伺服器模式下還有不同的結構                                                                           當資料庫處於專有伺服器模式時,庫緩衝區裡只有共用SQL區,私人SQL區和UGA被分到程式全域區裡;但處於共用伺服器模式下,庫緩衝區包含了私人SQL區,共用池裡也有了UGA(使用者全域區)。            總的來說,共用池就是SQL語句的專屬地區,劃分記憶體地區-->SQL語句的解析-->產生解析樹-->制定執行計畫-->返回查詢結果-->被所有的使用者進程共用這條SQL語句的執行計畫和結果。        什麼是資料庫高速緩衝區?        為了避免資料庫等待磁碟I/O,Oracle設計了資料庫高速緩衝區,暫時存放使用者執行查詢語句時從資料檔案(磁碟)讀取出來的資料,避免了直接對磁碟I/O,並被當前執行個體的其他使用者共用。        共用池和資料庫高速緩衝區密切相關,共用池存放SQL語句的來龍去脈,資料庫高速緩衝區是磁碟和記憶體之間的容器,每個查詢都是要先訪問共用池再到這個容器。資料庫高速緩衝區裡包含了保持池,回收池和預設池        可以看下面這個圖瞭解下資料庫高速緩衝區。        
               當發生SQL查詢時,在共用池的伺服器結果緩衝區裡找不到結果,那麼就會到資料庫高速緩衝區裡尋找,如果有,則產生緩衝命中(Cache Hit),讀取保持池,否則產生緩衝失誤(Cache Miss),可能會讀取預設池或者回收池,還有一種情況,如果在資料庫高速緩衝區裡找了很久,直到臨界點,那麼就會通知DBWn進程,將回收池裡的髒緩衝器寫入磁碟,再將預設池裡的空閑緩衝器轉移到回收池,變為髒緩衝器。        可想而知,一個SQL語句的執行過程大致如下:    歡迎大家指正!

Oracle 共用池和資料庫高速緩衝區,引出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.