国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle10g 管理系統全局區(SGA)

2024-08-29 13:37:23
字體:
來源:轉載
供稿:網友
 有幾個影響SGA內存分配數量的參數,除了SGA_MAX_SIZE ,其他都是動態參數,也就是說在數據庫運行期間可以使用ALTER SYSTEM 語句動態修改的參數.SGA的大小是動態的,通過修改這些參數可以讓SGA增大或縮小. SGA組件和SGA內存顆粒
        由許多內存組件組成,他們是用于滿足特定內存分配請求的內存池.例如共享池(用于緩沖磁盤數據塊),所有的SAG以一個最小的內存單元顆粒分配和回收內存空間,Oracle在系統內部追蹤SAG的內存單元的分配和使用情況.
        SGA的內存分配是通過顆粒進行分配的,顆粒大小由SGA的大小決定.一般來將,在大多數平臺,假如SGA小于等于1G,那么顆粒大小為4MB,假如大于1G,顆粒的大小為16MB,不同的是在32位Windows平臺下,SGA大于1G時,顆粒大小位8MB而非16MB,具體信息,查看操作系統文檔.
        可以通過V$SGAINFO 系統試圖查看由某個實例使用的顆粒大小.同樣的大小用于所有SGA的動態組件.
        假如指定的SGA組件的大小不是顆粒大小的整數倍,那么Oracle將會四舍五入求整而得到其整數倍值,賦給SGA內存組件.而不是你所指定的大小.例如假如顆粒大小為4MB,你給 DB_CACHE_SIZE 參數設定為10MB,那么實際分配的內存將會是12MB.限制SGA的大小
        SGA_MAX_SIZE 參數指定SGA在實例的生命期內的最大數.動態修改這些參數影響的Buffer cache,shared pool,large pool,java pool,和streams pool的大小,和SGA的總大小.但是不能超過SGA_MAX_SIZE 參數所設定的值.
   假如沒有指定,那么默認把所有初始化參數中指定的內存組件的和作為期缺省值.使用自動共享內存治理
        通過使用SGA_TARGET參數來啟用自動共享內存治理.以前手動分配的類似java_pool,large_pool這樣的共享內存組件將被自動治理,另外,你必須確保STATISTICS_LEVEL初始化參數設置為TYPICAL(默認值)或ALL.
   SGA_TARGET初始化參數反映了SGA的大小.表2-3 自動分配大小的SGA組件和相應的參數SGA 組件                                                                             初始化參數
固定的SGA和其他Oracle數據庫實例需要的內部分配  不可用
共享池                                                                                  SHARED_POOL_SIZE
大型池                                                                                  LARGE_POOL_SIZE
Java池                                                                                 JAVA_POOL_SIZE
緩沖區高數緩存                                                                 DB_CACHE_SIZE
表2-4 手動分配大小的使用SGA_TARGET空間的SGA組件SGA 組件                                                 初始化參數
日志緩沖區                                              LOG_BUFFER
The keep and recycle buffer caches DB_KEEP_CACHE_SIZE
                                                                 DB_RECYCLE_CACHE_SIZE非標準緩沖區高數緩存塊大小             DB_nK_CACHE_SIZE
流池                                                         STREAMS_POOL_SIZE
在手動治理模式下執行如下SQL查詢得到SGA_TARGET的值.SELECT (
   (SELECT SUM(value) FROM V$SGA) -
   (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)
   ) "SGA_TARGET"
FROM DUAL;
       然后你可以刪除由Oracle自動治理的共享內存相應的初始化參數.
       例如,當前你在手動治理模式下由如下配置,并且SGA_MAX_SIZE 設置為 1200M:SHARED_POOL_SIZE = 200M
DB_CACHE_SIZE = 500M
LARGE_POOL_SIZE=200M       對其動態性能視圖的查詢結果如下SHARED_POOL_SIZE = 200M
DB_CACHE_SIZE = 500M
LARGE_POOL_SIZE=200M     對其相應的動態性能視圖查詢結果如下:SELECT SUM(value) FROM V$SGA = 1200M
SELECT CURRENT_VALUE FROM V$SGA_DYNAMIC_FREE_MEMORY = 208M        你可以替換手動分配大小的參數 ( SHARED_POOL_SIZE, DB_CACHE_SIZE, LARGE_POOL_SIZE ) 來發揮自動共享內存治理的優點.SGA_TARGET=992M992M 是1200M 減去208M得到的.By default, when you set a value for SGA_TARGET, the value of the parameters corresponding to all the automatically sized SGA components is set to zero. However, you can still exercise some control over the size of the automatically sized components by specifying minimum values for the parameters corresponding to these components. Doing so can be useful if you know that an application cannot function PRoperly without a minimum amount of memory in specific components. You specify the minimum amount of SGA space for a component by setting a value for its corresponding 初始化參數. Here is an example configuration:
SGA_TARGET = 256M
SHARED_POOL_SIZE = 32M
DB_CACHE_SIZE = 100MIn this example, the shared pool and the default buffer pool will not be sized smaller than the specified values (32 M and 100M, respectively). The remaining 124M (256 minus 132) is available for use by all the manually and automatically sized components.
The actual distribution of values among the SGA components might look like this:Actual shared pool size = 64M
Actual buffer cache size = 128M
Actual Java pool size = 60M
Actual large pool size = 4M         此參數值決定了SGA的最小分配空間.V$SGA_DYNAMIC_COMPONENTS 顯示當前SGA組件的實際大小.你還可以用企業治理器內存配置頁查看當前SGA組件的實際值.
SGA參數的動態修改
       你可以用ALTER SYSTEM SQL 語句動態修改SGA_TARGET參數和控制SGA內存組件的其他參數的值.在下面的段落種有描述
SGA_TARGET初始化參數的動態修改
       SGA_TARGET參數值可以增加到SGA_MAX_SIZE 參數所指定的值,也可以減少,假如減少SGA_TARGET的值,系統將調整共享內存的大小,并且釋放內存.你可以減少SGA_TARGET的大小直到達到SGA內存組件的最小值為止.Oracle Database determines the minimum allowable value for SGA_TARGET taking into account several factors, including values set for the automatically sized components, manually sized components that use SGA_TARGET space, and number of CPUs.
                當SGA_TARGET被修改時,消耗的物理內存取決于操作系統.在有些UNIX平臺上不支持動態共享內存.由SGA使用的物理內存的大小等于SGA_MAX_SIZE 參數設置的值.在這樣的平臺上設置SGA_TARGET參數小于SGA_MAX_SIZE參數的值沒有實際的好處.在這些平臺上不推薦設置SGA_MAX_SIZE參數.
      在其他平臺上,比如Solaris和Windows消耗的物理內存等于SGA_TARGET參數設置的值.
      當SGA_TARGET參數調整大小時,受影響的僅僅時那些被自動治理的SGA內存組件,并且在初始化參數中沒有為其設置最小值.手動治理的SGA內存組件不受影響.
     例如,假設你的環境由如下配置:    
SGA_MAX_SIZE = 1024M
SGA_TARGET = 512M
DB_8K_CACHE_SIZE = 128M          在這個例子中, SGA_TARGET 可以動態的調整的1024M,也可以減小到Buffer Cache,Java Pool,Shared Pool,Large Pool中的一個或多個SGA內存組件減小到最小值.精確的值取決于環境因素,比如CPU數,但是DB_8K_CACHE_SIZE 的值會一直保持128M大小.
         當SGA_TARGE減小時, 假如自動治理的SGA內存組件已經設置了最小值,那么這些組件將不會再減小了.看看下面的參數.
SGA_MAX_SIZE = 1024M
SGA_TARGET = 512M
DB_CACHE_SIZE = 96M
DB_8K_CACHE_SIZE = 128M再在這個例子中,假如SGA_TARGET減小,DB_8K_CACHE_SIZE 始終固定在128M大小,另外DB_CACHE_SIZE 不會小于96M大小.所以SGA_TARGET能減小的數量是有限的.
對自動治理組件修改參數        假如沒有設置SGA_TARGET初始化參數,那么自動SGA治理的功能是被禁用了的.因此,其初始化參數的含義與早期的版本相同.但是,當啟用自動共享內存治理功能時,給被自動治理的SGA組件設置值,那么這個值被任務是該參數的下限.可以動態修改相應的參數值.
修改手動調整大小的參數
        手動調整大小的參數也可以動態的修改.但不是指定的最小值,而是精確值.
手工共享內存治理
        數假如你決定不使用自動共享內存治理,那么你必須手動配置SGA的每個組件.這節提供了關于設置那些控制每個SGA組件大小的初始化參數.
設置緩沖區高速緩存初始化參數
        緩沖區高速緩初始化參數決定了緩沖區高速緩SGA內存組件的大小.你可以用他們來指定不同數據庫塊大小的緩存數.是動態初始化參數.假如你打算在數據庫中使用多種塊大小,你必須設置DB_CACHE_SIZE初始化參數和至少一個DB_nK_CACHE_SIZE初始化參數.Oracle數據庫分配一個合適的默認值給B_CACHE_SIZE參數,但是DB_nK_CACHE_SIZE的默認值為0,并且沒有額外的高速緩存被分配.緩沖區的大小影響性能.更大的緩存大小將減少對磁盤的讀寫數,需要更多的內存,減少內存分頁和交換.
DB_CACHE_SIZE 初始化參數
        DB_CACHE_SIZE 初始化參數取代了DB_BLOCK_BUFFERS 初始化參數,DB_BLOCK_BUFFERS使用于早期的版本中. DB_CACHE_SIZE 參數以字節單位指定標準塊大小的緩沖區高速緩存的大小.因此,給 DB_CACHE_SIZE指定一個值, you would determine the number of buffers that you need and multiple that value times the block size specified in DB_BLOCK_SIZE.
為了兼容早期版本的數據庫, DB_BLOCK_BUFFERS 參數仍然可以使用,但是它保留一個靜態的參數,并且不能與其他動態大小調整的參數組合使用
DB_nK_CACHE_SIZE 初始化參數非標準塊的緩沖區塊大小和數量由如下的初始化參數指定:
DB_2K_CACHE_SIZE
DB_4K_CACHE_SIZE
DB_8K_CACHE_SIZE
DB_16K_CACHE_SIZE
DB_32K_CACHE_SIZE每個參數給相應的塊大小指定緩沖區高速緩存的大小.例如:
DB_BLOCK_SIZE=4096
DB_CACHE_SIZE=12M
DB_2K_CACHE_SIZE=8M
DB_8K_CACHE_SIZE=4M         在這個例子中,指定標準數據庫塊大小的參數值是4K.標準塊大小的緩沖區高速緩存的大小為12M.
另外,2K和8K的高速緩存大小分別配置為8M和4M.注重:
        不能使用DB_nK_CACHE_SIZE 參數來調整標準塊的大小.例如,假如DB_BLOCK_SIZE設置為2K,
設置DB_2K_CACHE_SIZE. 等于2K是無效的.標準緩存的塊大小總是由DB_CACHE_SIZE決定的. 
指定共享池大小
SHARED_POOL_SIZE 初始化參數是一個動態參數使你能夠指定或調整SGA組件的共享池大小.
Oracle 數據庫選擇一個合適的默認值. 共享池的配置在<<Oracle Database Performance Tuning Guide>>中討論.
指定大型池大小
LARGE_POOL_SIZE 初始化參數是一個動態參數使你能夠指定或調整SGA組件的大型池大小.
大型池是一個可選的SGA組件.假如你想創建大型池,你必須指定LARGE_POOL_SIZE 初始化參數.
配置大型池的討論在<<Oracle Database Performance Tuning Guide>>中.
指定Java池大小
JAVA_POOL_SIZE 初始化參數是一個動態參數使你能夠指定或調整SGA組件的Java池大小.
Oracle 數據庫選擇一個合適的默認值. Java池的配置在<<Oracle Database Java Developer's Guide>>中討論了.
指定流池大小
STREAMS_POOL_SIZE 初始化參數是一個動態參數使你能夠指定或調整SGA組件的流池的大小.
假如STREAMS_POOL_SIZE被設置為0,那么Oracle流產品 將使用共享池來滿足SGA內存的需求.
流池的配置在<<Oracle Streams Concepts and Administration>>中有介紹.查看關于SGA的信息
下面的視圖提供了關于SGA組件和他們的動態大小的信息:      視圖                                          描述 V$SGA                                    顯示關于SGA的摘要信息.
V$SGAINFO                              顯示關于SGA的大小信息,包括不同SGA組件的大小信息,內存顆粒大小,和自由內存空間.
V$SGASTAT                             顯示SGA的具體信息.
V$SGA_DYNAMIC_COMPONENTS  顯示SGA組件的信息.此視圖摘要了從實例啟動以來所有SGA大小調整操作信息.
V$SGA_DYNAMIC_FREE_MEMORY 顯示為將來調整SGA大小可用的自由內存空間.
V$SGA_RESIZE_OPS Displays      關于最近400條碗櫥大額SGA大小調整操作的信息.
V$SGA_CURRENT_RESIZE_OPS    顯示當前進行中的關于SGA大小調整的操作信息.一個調整操作是SGA組件的動態增大或減小.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 醴陵市| 阿克陶县| 句容市| 偏关县| 龙江县| 高邑县| 筠连县| 株洲县| 东源县| 临沭县| 萝北县| 舞钢市| 五寨县| 白水县| 无为县| 三明市| 新密市| 沂水县| 荥阳市| 商南县| 西宁市| 阳信县| 增城市| 寿光市| 白朗县| 汽车| 丹阳市| 宝应县| 武宣县| 阿巴嘎旗| 高密市| 桃园市| 通渭县| 西平县| 保康县| 高淳县| 宁化县| 永康市| 阜南县| 固始县| 色达县|