當前位置:首頁 » 操作系統 » 資料庫sga

資料庫sga

發布時間: 2022-05-29 17:30:26

Ⅰ SGA是什麼的縮寫

SGA系統全局區的英文簡稱,SGA (System Global Area)是Oracle Instance的 基本組成部分,在實例啟動時分配。是一組包含一個Oracle實例的數據和控制信息的共享內存結構。主要是用於存儲資料庫信息的內存區,該信息為資料庫進程所共享(PGA不能共享的)。

它包含Oracle 伺服器的數據和控制信息,它是在Oracle伺服器所駐留的計算機的實際內存中得以分配,如果實際內存不夠再往虛擬內存中寫。

(1)資料庫sga擴展閱讀:

1、SGA的構成——數據和控制信息,我們下面會詳細介紹。

2、SGA是共享的,即當有多個用戶同時登錄了這個實例,SGA中的信息可以被它們同時訪問(當涉及到互斥的問題時,由latch和sequence控制)。

3、一個SGA只服務於一個實例,也就是說,當一台機器上有多個實例運行時,每個實例都有一個自己的SGA盡管SGA來自於OS的共享內存區,但實例之間不能相互訪問對方的SGA區。

參考資料來源:

網路-SGA

Ⅱ sga是什麼意思

兩個意思:

sga是一組包含一個Oracle實例的數據和控制信息的共享內存結構。主要是用於存儲資料庫信息的內存區,該信息為資料庫進程所共享(PGA不能共享的)。

SGA系統全局區的英文簡稱,SGA (System Global Area)是Oracle Instance的 基本組成部分,在實例啟動時分配。是一組包含一個Oracle實例的數據和控制信息的共享內存結構。

享內存通信的一個顯而易見的好處是效率高,因為進程可以直接讀寫內存,而不需要任何數據的拷貝。對於像管道和消息隊列等通信方式,則需要在內核和用戶空間進行四次的數據拷貝,而共享內存則只拷貝兩次數據一次從輸入文件到共享內存區,另一次從共享內存區到輸出文件。


(2)資料庫sga擴展閱讀:

1、SGA的構成——數據和控制信息,我們下面會詳細介紹。

2、SGA是共享的,即當有多個用戶同時登錄了這個實例,SGA中的信息可以被它們同時訪問(當涉及到互斥的問題時,由latch和sequence控制)。

Ⅲ Oracle的系統全局區SGA由哪幾個部分組成

1、數據高速緩沖區(Data Buffer Cache)

在數據高速緩沖區中存放著Oracle系統使用過的數據塊(即用戶的高速緩沖區),當把數據寫入資料庫時,它以數據塊為單位進行讀寫,當數據高速緩沖區填滿時,則系統自動去掉一些不常被用戶訪問的數據。

如果用戶要查的數據不在數據高速緩沖區時,Oracle自動從磁碟中去讀取。數據高速緩沖區包括三個類型的區:

(1)臟數據區(Dirty Buffers):包含有已經改變過並需要寫回數據文件的數據塊。

(2)自由區(Free Buffers):沒有包含任何數據並可以再寫入的區,Oracle可以從數據文件讀數據塊該區。

(3)保留區(Pinned Buffers):此區包含有正在處理的或者明確保留用作將來用的區。

2、Redo Log Buffer Cache緩存對於數據塊的所有修改。

主要用於恢復其中的每一項修改記錄都被稱為redo 條目。利用Redo條目的信息可以重做修改。

3、Shared Pool用於緩存被執行的SQL語句和被使用的數據定義。

它主要由兩個內存結構構成:Library cache和Data dictionary cache

修改共享池的大小:ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;

Library Cache緩存被執行的SQL和PL/SQL的相關信息,即存放SQL語句的文本,分析後的代碼及執行計劃。

Ⅳ 資料庫實例和sga的區別

實例由稱為系統全局區(SGA)的共享內存以及若干後台進程組成。生存期就是它在內存中存在的時間。資料庫是由磁碟上的物理文件組成,可以永久存在。實例與資料庫可以是多對一的關系。在打開資料庫的時候,nomount階段就是創建並啟動實例,即根據初始化參數文件分配內存,啟動後台服務進程。

Ⅳ SGA是什麼

是一組包含一個Oracle實例的數據和控制信息的共享內存結構。主要是用於存儲資料庫信息的內存區,該信息為資料庫進程所共享(PGA不能共享的)。它包含Oracle伺服器的數據和控制信息,它是在Oracle伺服器所駐留的計算機的實際內存中得以分配,如果實際內存不夠再往虛擬內存中寫。
SGA幾個很重要的特性:
1、SGA的構成--數據和控制信息,我們下面會詳細介紹;
2、SGA是共享的,即當有多個用戶同時登錄了這個實例,SGA中的信息可以被它們同時訪問(當涉及到互斥的問題時,由latch和enquence控制);
3、一個SGA只服務於一個實例,也就是說,當一台機器上有多個實例運行時,每個實例都有一個自己的SGA盡管SGA來自於OS的共享內存區,但實例之間不能相互訪問對方的SGA區。
它主要包括:
1.資料庫高速緩存(the database buffer cache),
2.重演日誌緩存(the redo log buffer)
3.共享池(the shared pool)
4.數據字典緩存(the data dictionary cache)以及其它各方面的信息。
1.數據高速緩沖區(Data Buffer Cache)
在數據高速緩沖區中存放著Oracle系統最近使用過的數據塊(即用戶的高速緩沖區),當把數據寫入資料庫時,它以數據塊為單位進行讀寫,當數據高速緩沖區填滿時,則系統自動去掉一些不常被用訪問的數據。如果用戶要查的數據不在數據高速緩沖區時,Oracle自動從磁碟中去讀取。數據高速緩沖區包括三個類型的區:1) 臟的區(Dirty Buffers):包含有已經改變過並需要寫回數據文件的數據塊。
2) 自由區(Free Buffers):沒有包含任何數據並可以再寫入的區,Oracle可以從數據文件讀數據塊該區。
3) 保留區(Pinned Buffers):此區包含有正在處理的或者明確保留用作將來用的區。
2.Redo Log Buffer Cache緩存對於數據塊的所有修改。
主要用於恢復其中的每一項修改記錄都被稱為redo 條目。利用Redo條目的信息可以重做修改。
3. Shared Pool用於緩存最近被執行的SQL語句和最近被使用的數據定義。
它主要由兩個內存結構構成:Library cache和Data dictionary cache
修改共享池的大小:ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
Libray Cache緩存最近被執行的SQL和PL/SQL的相關信息。實現常用語句的共享,使用LRU演算法進行管理
,由以下兩個結構構成:Shared SQL area、Shared PL/SQL area、Data Dictionary Cache、Data dictionary cache緩存最近被使用的資料庫定義。它包括關於資料庫文件、表、索引、列、用戶、許可權以及其它資料庫對象的信息。在語法分析階段,Server Process訪問數據字典中的信息以解析對象名和對存取操作進行驗證。數據字典信息緩存在內存中有助於縮短響應時間。
4.數據字典緩存(the data dictionary cache)

Ⅵ Oracle的系統全局區SGA由哪幾個部分組成它們的作用是什麼

(1)數據高速緩沖區:存放著Oracle系統最近使用過的資料庫數據塊。
(2)共享池:相當於程序高速緩沖區,所有的用戶程序都存放在共享SQL池中。
(3)重做日誌緩沖區:用於緩沖區在對數據進行修改的操作過程中生成的重做記錄。

Ⅶ OracleXE中的SGA和PGA是什麼意思啊,英文全稱又是什麼呢

內存分配(SGA和PGA)
SGA:是用於存儲資料庫信息的內存區,該信息為資料庫進程所共享。它包含Oracle伺服器的數據和控制信息,它是在Oracle伺服器所駐留的計算機的實際內存中得以分配,如果實際內存不夠再往虛擬內存中寫。
PGA:包含單個伺服器進程或單個後台進程的數據和控制信息,與幾個進程共享的SGA正相反,PGA是只被一個進程使用的區域,PGA在創建進程時分配,在終止進程時回收.

Ⅷ 當資料庫內存增大,sga會自動增大嗎

Oracle資料庫可以自動內存管理SGA的,所以不用擔心。具體可以參考一下,如有幫助請採納。
ASMM自動共享內存管理:
自動根據工作量變化調整
最大程度地提高內存利用率
有助於消除內存不足的錯誤
SYS@PROD>show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 1G
sga_target big integer 1G
SYS@PROD>show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 0
memory_target big integer 0
shared_memory_address integer 0
SYS@PROD>show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 208M
ASMM 的工作原理 :
ASMM 以 MMON 在後台捕獲的工作量信息為基礎。
MMON 使用內存指導。
將內存移到 MMAN 最迫切需要的地方。
如果使用 SPFILE:在關閉時保存組件大小 、保存的值用於引導程序組件大小 、無需再確定最佳值
自動共享內存管理功能使用由以下兩個後台進程實施的 SGA 內存中介:可管理性監視器 (MMON) 和內存管理器 (MMAN)。MMON 定期將統計信息和內存指導數據捕獲到內存中。MMAN 根據 MMON 的決定調整內存組件的大小。SGA 內存中介會不斷跟蹤組件的大小和待處理的大小調整操作。
SGA 內存中介會觀察系統和工作量,以便確定理想的內存分配方案。SGA 內存中介每隔幾分鍾就執行一次這種檢查,使內存始終用在需要的地方。如果沒有自動共享內存管理功能,必須分別預計各組件在峰值時的內存需求,然後對其內存大小進行調整。
在工作量信息基礎上,自動共享內存管理功能會:
定期在後台捕獲統計信息
使用內存指導
進行假設分析,確定最佳內存分配方案
將內存移到最迫切需要的地方
如果使用了 SPFILE,則在關閉時保存組件大小(這些大小可以在最後一次關閉前重新起用)
啟用自動共享內存管理功能 :
要從手動共享內存管理模式下啟用 ASMM,請執行以下操作:
1.獲取 SGA_TARGET 的值:
SELECT ((SELECT SUM(value) FROM V$SGA) - (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)) "SGA_TARGET" FROM DUAL;
2.使用該值設置 SGA_TARGET。
3.將自動設置大小的 SGA 組件的值設置為 0。
要從自動內存管理模式切換到 ASMM,請執行以下操作:
1.將初始化參數 MEMORY_TARGET 設置為 0。
2.將自動設置大小的 SGA 組件的值設置為 0。
自動優化的 SGA 參數的行為:
未設置 SGA_TARGET 或將其設置為 0 時:
自動優化的參數指定相應組件的實際大小
、可能需要增加 SHARED_POOL_SIZE
SELECT SUM(bytes)/1024/1024 size_mb FROM v$sgastat WHERE pool = 'shared pool';
SGA_TARGET 設置為非零值時:
自動優化的參數的默認值為零 、指定的值用作下限大小
SELECT component, current_size/1024/1024 size_mb FROM v$sga_dynamic_components;
手動優化的 SGA 參數的行為:
有些組件不能自動優化。
--DB_KEEP_CACHE_SIZE 和 DB_RECYCLE_CACHE_SIZE
--非標准塊大小的緩沖區高速緩存,DB_nK_CACHE_SIZE
--
LOG_BUFFER
這些組件必須使用資料庫參數手動配置。
這些組件使用的內存會減少可用於自動優化 SGA 的內存量。
修改 SGA_TARGET 參數 :
--是動態參數
--
最多可增大到 SGA_MAX_SIZE
--可以減小,直到所有組件都達到其下限大小為止
更改 SGA_TARGET 的值只會影響自動調整大小的組件
SGA_TARGET 是一個動態參數,可以通過 Database Control 或使用 ALTER SYSTEM 命令更改。

GA_MAX_SIZE 是可分配給 SGA 的內存量的上限。更改該值後,必須重新啟動資料庫才能生效。SGA_TARGET 最多可增大到 SGA_MAX_SIZE 值。它可以減小,直到任一自動優化的組件達到其下限大小:用戶指定的下限值或內部確定的下限值。
如果增大 SGA_TARGET 的值,則會根據自動優化策略在自動優化的組件之間分配增加的那部分內存。
如果減小 SGA_TARGET 的值,則這部分內存將按照自動優化策略從一個或多個自動優化的組件處提取。
假定 SGA_MAX_SIZE 設置為 10 GB,SGA_TARGET 設置為 8 GB。如果 DB_KEEP_CACHE_SIZE 設置為 1 GB,並且將 SGA_TARGET 增大為 9 GB,則增加的 1 GB 只會在 SGA_TARGET 控制的組件之間進行分配。DB_KEEP_CACHE_SIZE 的值不受影響。同樣,如果將 SGA_TARGET 減小到 7 GB,則這 1 GB 也只會從 SGA_TARGET 控制的那些組件中提取。這種減少並不會影響手動控制的參數(如 DB_KEEP_CACHE_SIZE)的設置。
禁用 ASMM :
將 SGA_TARGET 設置為 0 可禁用自動優化功能。
自動優化的參數設置為其當前大小。
SGA 大小總體上不受影響。
eg:
SGA_TARGET 的值為 8 GB,SHARED_POOL_SIZE 的值為 1 GB。如果系統將共享池組件的大小內部調整為 2 GB,則將 SGA_TARGET 設置為 0 會導致 SHARED_POOL_SIZE 被設置為 2 GB,從而覆蓋用戶定義的原始值。
手動調整動態 SGA 參數的大小
對於自動優化的參數,手動調整大小會:
導致組件大小立即調整(如果新值大於當前值) 、更改下限大小(如果新值小於當前大小)
調整手動優化的參數的大小隻會影響 SGA 的可調部分。
調整了自動優化的參數的大小並設置了 SGA_TARGET 值後,只有當新值大於組件的當前大小時,這種調整才會導致組件的大小立即發生更改。例如,如果將 SGA_TARGET 設置為 8 GB,將 SHARED_POOL_SIZE 設置為 2 GB,可確保共享池始終不小於 2 GB,以滿足必要的內存分配需求。之後,即使將 SHARED_POOL_SIZE 值調整為 1 GB,也不會對共享池的大小產生直接影響。只會使自動內存優化演算法以後可以將共享池大小減少到 1 GB(如果需要)。相反,如果共享池的大小最初設置為 1 GB,那麼將 SHARED_POOL_SIZE 值調整為 2 GB 時,共享池組件的大小會立即增加到 2 GB。此大小調整操作中使用的內存從一個或多個自動優化的組件中提取,手動優化的組件的大小不受影響。
手動調整大小的組件的參數也可以動態變更,但不同之處在於,參數的值會立即指定相應組件的精確大小。因此,如果手動調整的組件的大小增大,則增加的那部分內存將從一個或多個自動調整大小的組件處提取。如果手動調整的組件的大小減小,則釋放的內存將會提供給自動調整大小的組件。
程序全局區 (PGA)
程序全局區 (PGA) 是包含某伺服器進程的數據及控制信息的內存區。這是 Oracle 伺服器在伺服器進程啟動時創建的非共享內存,只有該伺服器進程才能訪問。由關聯到某個 Oracle 實例的所有伺服器進程分配的 PGA 總內存,也稱為該實例分配的聚集 PGA 內存。
使用共享伺服器時,部分 PGA 可位於 SGA 中。
PGA 內存通常包含以下各項:

專用 SQL 區:
專用 SQL 區包含綁定信息和運行時內存結構等數據。這些信息是每個會話的 SQL 語句調用所特有的;在其它方面,綁定變數有不同的值,游標的狀態也不同。發出 SQL 語句的每個會話都有一個專用 SQL 區。提交同一 SQL 語句的每個用戶也都有其自己的專用 SQL 區,該專用 SQL 區使用一個共享 SQL 區。這樣,許多專用 SQL 區可與同一個共享 SQL 區關聯。專用 SQL 區的位置取決於為會話建立的連接類型。如果會話是通過專用伺服器連接的,則專用 SQL 區位於該伺服器進程的 PGA 中。不過,如果會話是通過共享伺服器連接的,則部分專用 SQL 區將保留在 SGA 中。
游標和 SQL 區

Oracle Pro*C 程序或 Oracle OCI 程序的應用程序開發人員可以顯式打開特定專用 SQL 區的游標或句柄,並在該程序的整個執行過程中將它們用作命名資源。資料庫為某些 SQL 語句隱式發出的遞歸游標也使用共享 SQL 區。
工作區

對於復雜查詢(例如,決策支持查詢),會將大部分 PGA 供內存密集型運算符分配的工作區專用,例如:
基於排序的運算符(如 ORDER BY、GROUP BY 和 ROLLUP)和窗口函數
散列聯接
點陣圖合並
點陣圖創建
批量裝載操作使用的寫緩沖區
排序運算符使用工作區(排序區),對一組行執行內存中排序。與此類似,散列聯接運算符使用工作區(散列區),根據其左側輸入內容生成散列表。
工作區的大小是可以控制和優化的。通常,較大的工作區可以顯著改進特定運算符的性能,不過代價是消耗較多的內存。
會話內存

會話內存是用於存放會話的變數(登錄信息)以及與會話相關的其它信息的內存。對於共享伺服器,會話內存是共享的,而不是專用的。
自動 PGA 內存管理
根據 PGA_AGGREGATE_TARGET 參數,動態調整供工作區專用的 PGA 內存量
有助於最大限度地提高所有內存密集型 SQL 操作的性能
默認情況下是啟用的
PGA 管理資源
管理 PGA_AGGREGATE_TARGET 初始化參數的統計信息,如 PGA 高速緩存命中百分比
可以在下列動態性能視圖中查看有關工作區內存分配和使用的統計信息:
V$SYSSTAT
V$SESSTAT
V$PGASTAT
V$SQL_WORKAREA
V$SQL_WORKAREA_ACTIVE
用於調整 PGA 工作區大小的視圖有:
V$PGA_TARGET_ADVICE
V$PGA_TARGET_ADVICE_HISTOGRAM
V$SQL_WORKAREA_HISTOGRAM
-----------------Oracle DB 內存參數

ALTER SYSTEM SET MEMORY_TARGET=300M;
雖然僅需要設置 MEMORY_TARGET 來觸發自動內存管理,但仍可以為各種高速緩存設置下限值。因此,如果子參數是用戶設置的,則這些參數值將是 Oracle DB 伺服器自動優化該組件時的下限值。
有效使用內存:准則
盡量使 SGA 適合物理內存。
優化以實現高緩沖區高速緩存命中率,但要注意以下幾點:
--即使有效且必需的全表掃描也會降低命中率。
--可能存在因不必要地重復讀取同一塊而出現命中率虛升的情況。
使用內存指導。
庫高速緩存的內存優化准則:提高命中率
為開發人員制定格式使用約定,以便 SQL 語句符合高速緩存的要求。
使用綁定變數。
消除不必要的重復 SQL。
考慮使用 CURSOR_SHARING。
盡可能使用 PL/SQL。
緩存序列號。
連接庫高速緩存中的對象。

Ⅸ 64g的資料庫sga是多大

需要11G。
系統全局區又稱SGA 是Oracle Instance的 基本組成部分,在實例啟動時分配。SGA主要由數據高速緩沖區、共享池、重做日誌緩沖區、大型池、Java池、流池和其他結構組成。
SGA主要由數據高速緩沖區(Database Buffer Cache)、共享池(Shared Pool)、重做日誌緩沖區(Redo Log Cache)、大型池(Large Pool)、Java池(Java Pool)、流池(Streams Pool)和其他結構(如固定SGA、鎖管理等)組成。
一個SGA只服務於一個實例,也就是說,當一台機器上有多個實例運行時,每個實例都有一個自己的SGA盡管SGA來自於OS的共享內存區,但實例之間不能相互訪問對方的SGA區。

Ⅹ sga是什麼意思

sga的意思是一組包含一個Oracle實例的數據和控制信息的共享內存結構。SGA系統全局區的英文簡稱,SGA (System Global Area)是Oracle Instance的 基本組成部分,在實例啟動時分配。是一組包含一個Oracle實例的數據和控制信息的共享內存結構。

主要是用於存儲資料庫信息的內存區,該信息為資料庫進程所共享(PGA不能共享的)。它包含Oracle 伺服器的數據和控制信息,它是在Oracle伺服器所駐留的計算機的實際內存中得以分配,如果實際內存不夠再往虛擬內存中寫。

組成:

SGA主要由數據高速緩沖區(Database Buffer Cache)、共享池(Shared Pool)、重做日誌緩沖區(Redo Log Buffer)、大型池(Large Pool)、Java池(Java Pool)、流池(Streams Pool)和其他結構(如固定SGA、鎖管理等)組成。

熱點內容
陰陽師按鍵腳本 發布:2024-05-05 12:00:33 瀏覽:758
魔獸查腳本 發布:2024-05-05 11:54:37 瀏覽:38
sqlserver執行時間 發布:2024-05-05 11:50:31 瀏覽:648
終端配置賬號該如何改密碼 發布:2024-05-05 11:24:37 瀏覽:825
成都存儲研發招聘 發布:2024-05-05 11:24:29 瀏覽:285
電腦伺服器名稱怎麼查找 發布:2024-05-05 10:49:37 瀏覽:470
電腦連到代理伺服器 發布:2024-05-05 10:40:02 瀏覽:250
華為安卓手機如何投屏到雷克薩斯 發布:2024-05-05 10:37:50 瀏覽:211
微博上傳原圖 發布:2024-05-05 10:20:05 瀏覽:749
伺服器換電腦需要什麼東西 發布:2024-05-05 09:52:28 瀏覽:754