Oracle

SGA_MAX_SIZE 和 SGA_TARGET

  • October 16, 2019

我們最近將 sga_max_size 從 2g 增加到 4g,但沒有增加 sga_target。不增加sga_target可以嗎?我們想要增加 sga 的原因是為了減少數據庫中順序讀取的等待時間。我們也應該增加 sga_target 嗎?

以下是我們目前擁有的。

NAME           TYPE       VALUE          DISPLAY_VALUE
sga_max_size    6         4194304000     4000M
sga_target      6         1996488704     1904M

在不改變 SGA_TARGET 的情況下增加 SGA_MAX_SIZE 是完全有效的,儘管它可能不會改變你的性能。將 SGA_MAX_SIZE 設置為更大的值允許您向上調整 SGA_TARGET 而無需重新啟動數據庫。它不會影響分配給 SGA 的實際 RAM 量,這由 SGA_TARGET 控制。如果您打算將 SGA 的大小從 2 GB 增加到 4 GB,則需要調整 SGA_TARGET。

Oracle 從 Oracle 9i 開始引入了自動 SGA 管理。這意味著您不必調整以下組件的大小:DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE 和 JAVA_POOL_SIZE。用於自動 SGA 管理的記憶體大小由 SGA_TARGET 指定,可以動態調整到由 SGA_MAX_SIZE 指定的 SGA 的最大大小,只能通過重新啟動實例來更改。

您希望最小化查詢的 db 順序讀取。恐怕僅更改 SGA 可能不會提高您的查詢性能。我建議您查看 Ask Tom-db 順序讀取

引用自:https://dba.stackexchange.com/questions/1535