2.SGA(system global area)
什么是SGA: SGA是一组包含着一个Oracle实例的数据和控制信息的共享内存结构
*是为Oracle系统分配的共享内存
*是实例的主要组成部分
*是影响数据库性能的最重要因素
*随实例启动、关闭从而被分配回收
*SGA自动对所包含的各种缓冲进行动态管理
SGA主要包含六大类缓存:
---db_buffer_cache,数据库高速缓存---
---redolog_buffer,重做日志缓存(不参与动态管理)
---large_pool 大池---
---share_pool 共享池---
---java_pool JAVA池---
---streams_pool 流池---
现在让我们具体了解SGA参数
----查看SGA---
SQL> SHOW SGA;
Total System Global Area 180355072 bytes
Fixed Size 1 218 412 bytes
Variable Size 75 499 668 bytes
Database Buffers 100 663 296 bytes
Redo Buffers 2 973 696 bytes 3M左右
SQL>
SQL> select * from v$sga;
NAME VALUE
-------------------- ----------
Fixed Size 1 218 412 bytes 约为1M左右
Variable Size 75 499 668
Database Buffers 100 663 296
Redo Buffers 2 973 696
SQL>
查看SGA重要参数
----pre_page_sga:oracle实例启动时,只会在物理内存中载入sga的各个内存的最小的大小(以粒度为单位),而剩余的sga只会在虚拟内存中分配。只有当进程touch到相应的page时,才会置换到物理内存中。但是,我们也希望oracle在启动后,所有的sga全部分配到物理内存上面,这时我们可以把这个参数设置成true(默认值是false)。
SQL> alter system set pre_page_sga=true scope=spfile;
System altered.
SQL>shutdown immediate;
SQL>startup open;
SQL> show parameter pre_page_sga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pre_page_sga boolean TRUE
现在看,pra_page_sga参数修改为TRUE了
----lock_sga:运行过程中是否将全部SGA绑定到物理内存,从而不使用交换分区
注:Linux,windows下不支持 建议不要修改
SQL> show parameter lock_sga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
SQL>
默认参数为FALSE
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23184238/viewspace-630565/ ,如需转载,请注明出处,否则将追究法律责任。