linux查看oracle的sga设置,Oracle基础教程之设置系统全局区SGA命令
今天簡單介紹一下SGA 的設置方法
1.sga_target 參數
alter system set sga_target = 40000m? scope=both;
特性:
1).ASMM 自動共享內存管理
答:SGA_TARGET參數控制ASMM(自動共享內存管理)是Oracle一個新特性,但是它的含義和SGA_MAX_SIZE的一樣,也表示SGA最大的大小,于是它也就有了一個限制,那就是它的大小不能大于SGA_MAX_SIZE的大小,一旦給SGA_TARGET指定值后(默認為0,即沒有啟動ASMM),就自動啟動了ASMM特性
2).sga_target 與sga_max_size關系
答:即當SGA_TARGET< SGA_MAX_SIZE的時候,oracle就會忽略SGA_MAX_SIZE的值,oracle的SGA就與SGA_TARGET為準,它能動態改變大小,但是不能大于SGA_MAX_SIZE的值,可以小于。
3).sga_target 動態參數
答:SGA_TARGET是可以在本實例內動態修改的,不用重啟數據庫實例,所謂的動態參數是指可以直接修改即在內存生效,不用重啟數據庫來加載參數文件生效。
4).ASMM 自動共享內存管理會影響哪些內存區呢
答:當啟用Oracle的ASMM新特性以后,也不是SGA的所有內存區的大小都開始動態共享起來,只有以下的這些區的內存大小可動態共享,而SGA中的其他區域的內存大小仍然是固定不共享的
* Buffer cache (DB_CACHE_SIZE)
* Shared pool (SHARED_POOL_SIZE)
* Large pool (LARGE_POOL_SIZE)
* Java pool (JAVA_POOL_SIZE)
* Streams pool (STREAMS_POOL_SIZE)
2.sga_max_size參數
alter system set sga_max_size=40000m scope=spfile;
特性:
1).sga_max_size靜態參數
它用來控制SGA使用虛擬內存的最大大小,當實例啟動后,各個內存區只分配實例所需要的最小大小,在隨后的運行過程中,再根據需要擴展他們的大小,而他們的總和大小受到了SGA_MAX_SIZE的限制。“修改SGA_MAX_SIZE的大小,必須要重新啟動數據庫實例”,因為是靜態參數。所謂靜態參數是指修改之后即在spfile參數文件里生效,沒有在內存里生效,所以必須重啟數據庫來加載參數文件使其生效
3.db_cache_size參數【數據庫緩沖區高速緩存】
alter system set db_cache_size=2000m scope=both;
1).此參數是一個動態參數,用于緩存數據庫中正在使用的“有效數據”的內存區,此內存區的大小對數據的檢索速度有很大的影響,如果檢索的數據在此區內可以找到,那么要比間接到硬盤中找要快的多。所以在系統穩定后可以靜態設置此緩沖區的值
4.scope =【memory | spfile | both】
1).如果scope=memory? 說明修改的參數只在內存中生效,重啟數據庫后恢復到原來狀態值【用于修改動態參數】
2).如果scope=spfile? ? ? 說明修改的參數只在參數文件中生效,修改后當前環境是不生效的,必須重啟數據庫來加載參數文件使其生效【用于修改靜態參數】
3).如果scope=both? ? ? ? 說明修改的參數在當前環境(內存)和spfile(參數文件)都生效,both=memory+spfile,修改后當前環境生效,重啟數據庫后也生效。
小結:當我們明白了這些在SGA中很重要的參數時,才能游刃有余的分配我們有限的內存空間,使我們的系統的性能最大化,讓oracle跑的更快、更好。
相關閱讀:
總結
以上是生活随笔為你收集整理的linux查看oracle的sga设置,Oracle基础教程之设置系统全局区SGA命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手动升级oracle,ORACLE 10
- 下一篇: oracle数据库源数据路径,oracl