關于show sga結果的描述
2024-07-21 02:39:58
供稿:網友
Total System Global Area AAAAA bytes Fixed Size BBBBB bytes Variable Size CCCCC bytes Database Buffers DDDDD bytes Redo Buffers EEEEE bytes fixes size : Oracle 的不同平臺和不同版本下可能不一樣,但對于確定環境是一個固定的值,里面存儲了 SGA 各部分 組件 的信息,可以看作 引導 建立 SGA 的區域 Variable Size : 包括 shared pool ,java pool ,large pool, 治理DB_BLOCK_BUFFERS 的內存,治理控制文件信息的內存,等等其他治理和控制 oracle 內部結構的內存 redo buffer 分 1: 設置參數 SQL> show parameters log_buffer NAME TYPE VALUE ------------------------------------ ------- ------------------------------ log_buffer integer 524288 2:日志內存大小 SQL> select * from v$sgastat where name like '%log%'; POOL NAME BYTES ----------- -------------------------- ---------- log_buffer 656384 3 : 為了保護日志內存,而增加了輔助的內存,也就是保護頁 SQL> show sga Total System Global Area 496049552 bytes Fixed Size 454032 bytes Variable Size 109051904 bytes Database Buffers 385875968 bytes Redo Buffers 667648 bytes SQL> 對于數據庫來說,在不同 的平臺下 log_buffer 是離散的 一組值,假設是集合 R,并且不是按照 os blockck 或者 db block 為步長增加的,(比如可能是 65k,128k,512k ,641k....這樣的值) 當設置參數為某個值的時候,數據庫選擇的實際大小是 大于等于 該值 的 min(R) ,根據這組值,比如你設置了 log_buffer = 600k ,則實際選擇的是641 k 然后,在實際分配內存的時候,為了 給 log buffer 做一些保護,還另外分配了一小部分空間,通常是 11 k 大小。 則有641+11 = 652 k 這才是 最后真正的 內存大小 ,也就是 show SGA 時候顯示大小。