Oracle性能优化之内存管理
Oracle实例中的内存使用分为两类:程序全局区(program global area, PGA)和系统全局区(system global area, SGA)。前者专门供每个会话使用,后者由所有Oracle进程共享。
对于PGA_AGGREGATE_TARGET参数的设置,Oracle提供的建议方案,如下:
1.对于OLTP系统
PGA_AGGREGATE_TARGET = (<Total Physical Memory > * 80%) * 20%
2.对于DSS系统
PGA_AGGREGATE_TARGET = (<Total Physical Memory > * 80%) * 50%
注:OLTP与DSS区别,可参考链接:https://blog.csdn.net/MyySophia/article/details/78843208
也就是说,对于一个单纯的数据库服务器,通常我们需要保留20%的物理内存给操作系统使用,剩余80%可以分配给Oracle使用。Oracle使用的内存分为两部分SGA和PGA,那么PGA可以占用Oracle消耗总内存的20%(OLTP系统)至50%(DSS/OLAP系统)。
当然,这只是一个建议设置,更进一步的我们应该根据数据库的具体性能指标来调整和优化内存的使用。

今日也特意咨询公司性能调优部的一位性能调优专家:根据本公司业务实践经验,通常将Oracle内存调整如下:
pga_aggregate_target =物理内存大小的20%
sga_target =物理内存大小的60%
sga_max_size =物理内存大小的60%
Get!
内存设置方法如下:
1. 调整PGA内存的参考命令如下:
alter system set workarea_size_policy=auto SCOPE=SPFILE; #默认auto,表示Oracle可以根据需要,将PGA分配给会话,同时力求将PGA分配总量保持在pga_aggregate_target范围内
alter system set pga_aggregate_target=物理内存大小的20% SCOPE=SPFILE;
2. 调整SGA内存的参考命令如下:
ALTER SYSTEM SET SGA_TARGET=物理内存大小的60% SCOPE=SPFILE;
ALTER SYSTEM SET SGA_MAX_SIZE=物理内存大小的60% SCOPE=SPFILE;
在上述命令中:
SCOPE指的是修改范围,一共有三个值分别是SPFILE,BOTH和MEMORY
SPFILE:指修改服务器参数文件中的数据。
MEMORY:指修改内存中的数据,对于要重启数据库才生效的参数,该值不可用
BOTH:指同时修改服务器参数文件和内存中的数据。
在修改以上两个值时需要注意,SGA_MAX_SIZE必须大于或者等于SGA_TARGET。
3. 重启数据库
SQL> shutdown immediate
SQL> startup
查看Oracle内存使用情况:
1. 查看当前系统PGA的信息
SELECT * FROM V$PGASTAT;
2. 查看当前系统SGA的信息
select name,bytes/1024/1024 as "Size(M)" from v$sgainfo;
3. PGA、SGA应用状况查询
select name,total,round(total-free,2) used, round(free,2) free,round((total-free)/total*100,2) pctused from
(select 'SGA' name,(select sum(value/1024/1024) from v$sga) total,
(select sum(bytes/1024/1024) from v$sgastat where name='free memory')free from dual)
union
select name,total,round(used,2)used,round(total-used,2)free,round(used/total*100,2)pctused from (
select 'PGA' name,(select value/1024/1024 total from v$pgastat where name='aggregate PGA target parameter')total,
(select value/1024/1024 used from v$pgastat where name='total PGA allocated')used from dual);
Oracle性能优化之内存管理的更多相关文章
- iOS性能优化之内存管理:Analyze、Leaks、Allocations的使用和案例代码
最近接了个小任务,和公司的iOS小伙伴们分享下instruments的具体使用,于是有了这篇博客...性能优化是一个很大的话题,这里讨论的主要是内存泄露部分. 一. 一些相关概念 很多人应该比较了解这 ...
- 性能优化-Bitmap内存管理及优化
Bitmap作为重要Android应用之一,在很多时候如果应用不当,很容易造成内存溢出,那么这篇文章的目的就在于探讨Bitmap的有效运用及其优化 缓存介绍 当多次发送请求的时候,请求同一内容,为了使 ...
- [Android 性能优化系列]内存之基础篇--Android怎样管理内存
大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 原文地 ...
- [Android 性能优化系列]内存之提升篇--应用应该怎样管理内存
大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 原文地 ...
- Oracle 性能优化的基本方法
Oracle 性能优化的基本方法概述 1)设立合理的性能优化目标. 2)测量并记录当前性能. 3)确定当前Oracle性能瓶颈(Oracle等待什么.哪些SQL语句是该等待事件的成分). 4)把等待事 ...
- 降低磁盘IO使Oracle性能优化(转)
文章转自:http://blog.chinaunix.net/uid-26813519-id-3207996.html 硬件方面虽然只占Oracle性能优化的一个方面(另一方面是软件),但是仍不可忽视 ...
- oracle性能优化之awr分析
oracle性能优化之awr分析 作者:bingjava 最近某证券公司系统在业务期间系统运行缓慢,初步排查怀疑是数据库存在性能问题,因此导出了oracle的awr报告进行分析,在此进行记录. 导致系 ...
- redis性能优化、内存分析及优化
redis性能优化.内存分析及优化 1.优化网络延时 2.警惕执行时间长的操作 3.优化数据结构.使用正确的算法 4.考虑操作系统和硬件是否影响性能 5.考虑持久化带来的开销 5.1 RDB 全量持久 ...
- 【转载】我眼中的Oracle性能优化
我眼中的Oracle性能优化 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角 ...
随机推荐
- 学军中学第三届“图灵杯”趣味网络邀请赛——中级T4.欧拉回路 (图论,哈希)
题面 补题链接 7 5 6 7 1 2 3 3 13 5 30 50 10 30 70 8 题解 存在欧拉回路的条件是:1. 每个点的度数都是偶数.2. 有边的连通块最多一个. 数据范围是允许我们 n ...
- PostgreSQL 与 Oracle 访问分区表执行计划差异
熟悉Oracle 的DBA都知道,Oracle 访问分区表时,对于没有提供分区条件的,也就是在无法使用分区剪枝情况下,优化器会根据全局的统计信息制定执行计划,该执行计划针对所有分区适用.在分析利弊之前 ...
- Docker_删除none镜像
Docker 删除 none 镜像 docker images|grep none|awk '{print $3}'|xargs docker rmi
- 类的常成员const
成员数据 以Human为例: 类中: 传统的初始化方式: ...
- 面试突击84:Spring 有几种事务隔离级别?
Spring 中的事务隔离级别和数据库中的事务隔离级别稍有不同,以 MySQL 为例,MySQL 的 InnoDB 引擎中的事务隔离级别有 4 种,而 Spring 中却包含了 5 种事务隔离级别. ...
- 以TrueType为例谈字形描述
以TrueType为例谈字形描述 作者:哲思 时间:2022.9.17 邮箱:zhe__si@163.com GitHub:zhe-si (哲思) (github.com) 一.前言 在深入理解&qu ...
- .NET 反向代理 YARP 通过编码方式配置域名转发
前面介绍了 YARP 通过配置文件的方式配置代理转发(传送门),而众所周知,微软的一贯作风就是能通过配置文件做的事情,通过编码的方式也能实现!YARP 也不例外,废话不多说,直接上代码! 首先,参照官 ...
- Centos7搭建 KVM 环境
注意:使用KVM管理虚拟机分命令行和图形化界面两种方式,这里最后一步安装的工具是图形化管理工具 安装前准备 验证CPU是否支持KVM 如果结果中有vmx(Intel)或svm(AMD)字样,就说明CP ...
- 第六章:Django 综合篇 - 1:配置 Django
Django项目的设置文件位于项目同名目录下,名叫settings.py.这个模块,集合了整个项目方方面面的设置属性,是项目启动和提供服务的根本保证. 一.简述 settings.py文件本质上是一个 ...
- 使用port-forward访问集群中的应用程序,以Redis 为例
为Redis创建Deployment和Service 创建 Redis Deployment,YAML文件如下: apiVersion: apps/v1 kind: Deployment metada ...