Oracle體系架構(二) 系統全域共用區SGA

來源:互聯網
上載者:User

System Global Area 是一塊巨大的共用記憶體地區,他被看做是Oracle 資料庫的一個大緩衝池,這 裡的資料可以被ORACLE的各個進程共用。其大小查看語句:

SQL> select * from v$sga;

V$sgastat、V$buffer_pool

主要包括以下幾個部分:

1、共用池(Shared pool)

共用池是SGA中最關鍵的記憶體片段,特別是在效能和延展性上。太大太小都會扼殺效能,使系統 停止,將會消耗大量的CPU來管理這個共用池。

共用池可分為:Library Cache和Data Dictionaey Cache

(1)庫高速緩衝區(Library Cache)

library cache最主要的功能就是存放使用者提交的SQL語句及相關的解析樹(解析樹也就是對SQL語 句中所涉及的所有對象的展現)、執行計畫、使用者提交的PL/SQL程式塊(包括Anonymizer塊、預存程序 、包、函數等)以及它們轉換後能夠被Oracle執行的代碼等。此外,library cache中還存放了很多控 制結構(用於管理這些記憶體結構),包括lock、pin、dependency table等。

library cache也存放了很多的資料庫物件的資訊,包括表、索引等。有關這些資料庫物件的資訊 都是從dictionary cache中獲得的。如果使用者對library cache中的對象資訊進行了修改,比如為表添 加了一個列等,則這些修改會返回到dictionary cache中。

在library cache中存放的所有資訊單元都叫做對象(object),可分兩類:一類叫儲存物件,也 就是上面所說的資料庫物件。它們是通過顯式的SQL語句或PL/SQL程式建立出來的,如果要刪除它們, 也必須通過顯式的SQL命令進行刪除。這類對象包括表、視圖、索引、包、函數等;另一類叫做過渡對 象,也就是上面所說的使用者提交的SQL語句或者提交的PL/SQLAnonymizer塊等。這些過渡對象是在執行 SQL語句或PL/SQL程式的過程中產生的,並緩衝在記憶體裡。如果執行個體關閉則刪除,或者由於記憶體不足而 被交換出去,從而被刪除。

當一個使用者提交一個SQL語句,Oracle會將這句SQL進行分析(parse),這個過程類似於編譯,會耗 費相對較多的時間,即硬解析。在分析完這個SQL,Oracle會把他的分析結果給儲存在Shared pool的 Library Cache中,當資料庫第二次執行該SQL時,Oracle自動跳過這個分析過程,從而減少了系統運 行的時間,即軟解析。這也是為什麼第一次啟動並執行SQL 比第二次啟動並執行SQL要慢一點的原因。

下面舉例說明parse的時間

SQL> select count(*) from scpass ;

COUNT(*)

----------

243

Elapsed: 00:00:00.08

這是在Share_pool 和Data buffer 都沒有資料緩衝區的情況下所用的時間

SQL> alter system flush SHARED_POOL;

System altered.

清空Share_pool,保留Data buffer

SQL> select count(*) from scpass ;

COUNT(*)

----------

243

Elapsed: 00:00:00.02

SQL> select count(*) from scpass ;

COUNT(*)

----------

243

Elapsed: 00:00:00.00

聯繫我們

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