更改oracle共享池(Shared_pool_size)大小

当Oracle数据库因共享池过小导致性能下降时,可通过调整SGA大小解决问题。本文介绍了两种方法:一是当SGA空间已满时,通过控制台更改SGA和共享池大小并重启数据库;二是如果SGA空间足够,可直接在sqlplus中用alter system命令设置共享池大小。同时,文中还提及了SGA的内存分配原理、颗粒大小以及如何查询SGA信息。
摘要由CSDN通过智能技术生成

由于共享池过小,导致数据库性能降低,现在把更改方法总结一下,以便以后查阅

A.sga(指定数据库启动时分配的内存大小)空间已满

 1.以DBA身份进入控制台

 2.在管理->例程->内存参数中,更改SGA大小

 3.重启数据库后再次以DBA进入控制台,更改共享池大小

 4.再次重启数据库

B.sga空间足够:直接更改共享池大小就可以了

可以用命令更改:进入sqlplus执行alter system set shared_pool_size=10M。(设置成需要的大小)

更改后要重启数据库哦!

查询数据库的SGA:select * from v$sga;

Oracle10g 管理系统全局区(SGA)

有几个影响SGA内存分配数量的参数,除了SGA_MAX_SIZE ,其他都是动态参数,也就是说在数据库运行期间可以使用ALTER SYSTEM 语句动态修改的参数.SGA的大小是动态的,通过修改这些参数可以让SGA增大或缩小. SGA组件和SGA内存颗粒       

  由许多内存组件组成,他们是用于满足特定内存分配请求的内存池.例如共享池(用于缓冲磁盘数据块),所有的SAG以一个最小的内存单元颗粒分配和回收内存空间,Oracle在系统内部追踪SAG的内存单元的分配和使用情况.         SGA的内存分配是通过颗粒进行分配的,颗粒大小由SGA的大小决定.一般来将,在大多数平台,如果SGA小于等于1G,那么颗粒大小为4MB,如果大于1G,颗粒的大小为16MB,不同的是在32位Windows平台下,SGA大于1G时,颗粒大小位8MB而非16MB,详细信息,查看操作系统文档.        

 可以通过V$SGAINFO 系统试图查看由某个实例使用的颗粒大小.同样的大小用于所有SGA的动态组件.     

    如果指定的SGA组件的大小不是颗粒大小的整数倍,那么Oracle将会四舍五入求整而得到其整数倍值,赋给SGA内存组件.而不是你所指定的大小.例如如果颗粒大小为4MB,你给 DB_CACHE_SIZE 参数设定为10MB,那么实际分配的内存将会是12MB. 限制SGA的大小     

    SGA_MAX_SIZE 参数指定SGA在实例的生命期内的最大数.动态修改这些参数影响的Buffer cache,shared pool,large pool,java pool,和streams pool的大小,和SGA的总大小.但是不能超过SGA_MAX_SIZE 参数所设定的值.    如果没有指定,那么默认把所有初始化参数中指定的内存组件的和作为期缺省值. 使用自动共享内存管理         通过使用SGA_TARGET参数来启用自动共享内存管理.以前手动分配的类似java_pool,large_p

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值