Oracle SGA中的Granule(粒度)

news/2024/7/24 12:25:47

    我们都知道从Oracle9i开始,Oracle引入了一个新的initial parameter->db_cache_size,这个参数代表了standard db_block_size的Default  pool的大小.那么这样一来的引入替代了先前的db_block_buffers*db_block_size=buffer cache size的设置方法.
    db_cache_size的最小值就是一个Granule,这个也是Oracle 9i引入的一个新概念.是连续虚拟内存分配的单位,这个Granule分配的大小取决于SGA的总大小(SGA_MAX_SIZE).
     如果估计的SGA的大小小于128MB,那么Granule为4M,否则 > 4M
     if [$SGA_MAX_SIZE < 128MB]
     then
              Granule=4M
     elseif
              Granule >4M
     end if

    观察这个值,我们可以通过一个隐藏参数_ksmg_granule_size来控制

     SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for 32-bit Windows: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

SQL> select
  2  x.ksppinm name,
  3  y.ksppstvl value,
  4  y.ksppstdf isdefault,
  5  decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
  6  decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj from
  7  sys.x$ksppi x,
  8  sys.x$ksppcv y
  9  where
 10  x.inst_id=userenv('Instance') and
 11  y.inst_id=userenv('Instance') and
 12  x.indx=y.indx and
 13  x.ksppinm like '%_&par%'
 14  order by
 15  translate(x.ksppinm,'_','');
输入 par 的值:  ksmg_granule
原值   13: x.ksppinm like '%_&par%'
新值   13: x.ksppinm like '%_ksmg_granule%'

NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD      ISADJ
--------- ---------- -----
_ksmg_granule_size
4194304
TRUE      FALSE      FALSE

_ksmg_granule_locking_status
1
TRUE      FALSE      FALSE

NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD      ISADJ
--------- ---------- -----


SQL> show parameter sga_max_size;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_max_size                         big integer 135339604
SQL> alter system set sga_max_size=200M scope=spfile;

系统已更改。

SQL> startup force
ORACLE 例程已经启动。

Total System Global Area  210836936 bytes
Fixed Size                   454088 bytes
Variable Size             184549376 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL>


SQL> select
  2  x.ksppinm name,
  3  y.ksppstvl value,
  4  y.ksppstdf isdefault,
  5  decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
  6  decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj from
  7  sys.x$ksppi x,
  8  sys.x$ksppcv y
  9  where
 10  x.inst_id=userenv('Instance') and
 11  y.inst_id=userenv('Instance') and
 12  x.indx=y.indx and
 13  x.ksppinm like '%_&par%'
 14  order by
 15  translate(x.ksppinm,'_','');
输入 par 的值:  ksmg_granule
原值   13: x.ksppinm like '%_&par%'
新值   13: x.ksppinm like '%_ksmg_granule%'

NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD      ISADJ
--------- ---------- -----
_ksmg_granule_size
8388608
TRUE      FALSE      FALSE

_ksmg_granule_locking_status
1
TRUE      FALSE      FALSE

NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD      ISADJ
--------- ---------- -----


SQL> show parameter sga_max_size;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_max_size                         big integer 210836936
SQL> alter system set sga_max_size=500M scope=spfile;

系统已更改。

SQL> startup force;
ORACLE 例程已经启动。

Total System Global Area  529604804 bytes
Fixed Size                   454852 bytes
Variable Size             503316480 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> select
  2  x.ksppinm name,
  3  y.ksppstvl value,
  4  y.ksppstdf isdefault,
  5  decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
  6  decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj from
  7  sys.x$ksppi x,
  8  sys.x$ksppcv y
  9  where
 10  x.inst_id=userenv('Instance') and
 11  y.inst_id=userenv('Instance') and
 12  x.indx=y.indx and
 13  x.ksppinm like '%_&par%'
 14  order by
 15  translate(x.ksppinm,'_','');
输入 par 的值:  ksmg_granule
原值   13: x.ksppinm like '%_&par%'
新值   13: x.ksppinm like '%_ksmg_granule%'

NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD      ISADJ
--------- ---------- -----
_ksmg_granule_size
8388608
TRUE      FALSE      FALSE

_ksmg_granule_locking_status
1
TRUE      FALSE      FALSE

NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD      ISADJ
--------- ---------- -----


SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12361284/viewspace-114455/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12361284/viewspace-114455/


http://www.niftyadmin.cn/n/1553438.html

相关文章

Java项目:小说阅读系统(java+SSM+JSP+html+JavaScript+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 mysql Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术&#xff1a; JSP Spring SpringMVC MyBatis html css JavaScript …

Reset the value of each parameter

经常通过更改pfile或者spfile来修改数据库的initital parameter,但是如果我们想要重置呢?那么Oracle给我们提供了reset的选项,但是在alter system 的后面需要加上sid*Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> conn / as sysdba;已连接。…

Java项目:大学生就业创业管理系统(java+SSM+JSP+html+jQuery+Bootstrap+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 环境需要 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomc…

Oracle8i中SORT_AREA_SIZE和SORT_AREA_RETAINED_SIZE的理解

在Oracle中,一个process执行一个逻辑复杂的SQL时,可能这个SQL包含了众多的SORT工作,Oracle也只最多最多分配一个SORT_AREA_SIZE大小的空间来进行SORT.但是Oracle可以为我们分配多个SORT_AREA_RETAINED_SIZE来临时保存SORT结束后的结果.SORT_AREA_SIZE-------------------------…

Java项目:大学生就业管理系统(java+SSM+JSP+html+Bootstrap+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 环境需要 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomc…

2008.1.8 They drove the car and went out for a spin.

They drove the car and went out for a spin.他们开车到外面兜风去了。----------------------------------------------------------------------作为名词&#xff0c;spin常用的意思是“兜圈、旋转”&#xff08;the act of spinning&#xff09;&#xff0c;“兜风”&#…

Java项目:校园维修管理系统(java+Springboot+JSP+bootstrap+maven+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 项目介绍 本项目为后台管理系统&#xff0c;包括管理员与学生两种角色&#xff1b; 学生包含以下功能&#xff1a; 学生提交报修,添加维修,催单,水电缴费,登录页面等功能。 管理员包含以下功能&#x…

extent的概念

有的时候读一读concept陶冶一下情操&#xff0c;还是有益处的&#xff0c;平时和Oracle打交道打多了&#xff0c;偶尔我们都会忽略一些最最基本的概念。做为技术人员&#xff0c;需要有一种知其然而且要知其所以然的精神&#xff0c;在我们不断往前走的时候&#xff0c;还是应该…