初始建库SGA该设多大、PGA该设多大的建议
来源:互联网 发布:淘宝批量编辑宝贝描述 编辑:程序博客网 时间:2024/06/10 02:57
1.背景情况
很多新业务系统上线,大部分DBA也不懂业务,就闷着头建库,SGA值设多大,PGA设多大,随便指定一个值就得了,运行一段时间后,也许就因为这个值是随便指定的,例如SGA+PGA大于总物理内存,SGA值或PGA值太小等等,造成DOWN机或性能低下的情况,屡见不鲜。
其实,SGA初始设置多大,PGA初始设置多大,在OLTP系统上该怎么设,在OLAP系统上又该怎么设,ORACLE是有说法的。
2.ORACLE实例总占用内存规划
2.1下面是ORACLE官方的建议
Assume that an Oracle database instance is configured to run on a system with 4 GB of physical memory. Part of that memory should be left for the operating system and other non-Oracle applications running on the same hardware system. You might decide to dedicate only 80% (3.2 GB) of the available memory to the Oracle database instance.
2.2含义理解:
如果运行ORACLE数据库的机器上,在不考虑运行其它特殊程序的情况下,以及假设只运行一个实例的情况下,可以将总物理内存的80%分配给数据库实例使用,例如总物理内存为4GB,那就可以为数据库配置3.2GB内存(SGA+PGA)
3.SGA和PGA初始值到底该设置成多大
3.1下面是ORACLE官方的建议
■For OLTP systems, the PGA memory typically accounts for a small fraction of the total memory available (for example, 20%), leaving 80% for the SGA.
■For DSS systems running large, memory-intensive queries, PGA memory can typically use up to 70% of the available memory.
Oracle recommends initially dedicating 50% of the available memory to the PGA, and 50% to the SGA. Therefore, the initial value of the PGA_AGGREGATE_TARGET parameter for a DSS system can be calculated as:
3.2含义理解
(1)对于OLTP系统,SGA占数据库使用总内存的80%,PGA占数据库使用内存的20%(例如总物理内存4GB,PGA则需要占用约655MB)
(2)对于OLAP(DSS)系统,对于密集大查询的系统,PGA可以占到数据库使用总内存的70%(例如总物理内存4GB,PGA则需要占用约2.2GB(2.24GB),建议最初设置数据库使用总内存的50%
3.3建议计算公式
(1)OLTP系统:
SGA_TARGET = (total_mem * 0.8) * 0.8
PGA_AGGREGATE_TARGET=(total_mem * 0.8) * 0.2
(2)OLAP(DSS)系统:
SGA_TARGET= (total_mem * 0.8) * 0.5
PGA_AGGREGATE_TARGET =(total_mem * 0.8) * 0.5
4.上线后调整值参考
上面的一切初始建议值,都是在上线前的最佳配置建议值,在上线运行一段时间后,系统运行特性真面目就慢慢的体现出来了,这时,就应该根据运行实际需求及时的调整SGA_TARGET与PGA_AGGREGATE_TARGET的值了。
SGA_TARGET的实际需求建议值,可以参考V$SGA_TARGET_ADVICE
PGA_AGGREGATE_TARGET的实际需求建议值,可以参考V$PGA_TARGET_ADVICE视图
本文作者:黎俊杰(网名:踩点),从事”系统架构、操作系统、存储设备、数据库、中间件、应用程序“六个层面系统性的性能优化工作
欢迎加入 系统性能优化专业群,共同探讨性能优化技术。群号:258187244
- 初始建库SGA该设多大、PGA该设多大的建议
- 初始建库SGA该设多大 PGA该设多大的建议
- 转载:innodb_log_file_size设多大…
- linux下的Swap分区设多大合适?
- 关于ORACLE数据库服务器SWAP该设置成多大的建议值
- 关于ORACLE数据库服务器SWAP该设置成多大的建议值
- 多大的文件开始不用send_file,该怎么处理
- 一般采用哈希算法的时候,哈希表的长度设为多大?有什么依据?
- 多大
- 多大
- Mysql设计时该不该加约束
- Android App从服务器请求的图片到底该用多大?
- 程序员多大年纪算高龄,届时该何去何从?
- 获取非最后一列td值并将title设为该值的方法
- 多大的诋毁=多大的赞美
- 关于数据结构课设的一些建议:
- sga和pga的区别
- oracle的sga和pga
- 10中技巧提升Android运行效果
- 关于python装各种工具包的问题
- 学习Python:Mix-in技术介绍
- IOS 30多个iOS常用动画,带详细注释
- hive中UDF和UDAF使用说明
- 初始建库SGA该设多大、PGA该设多大的建议
- Mac OS X 10.10 启用 Web 服务器
- Android编程心得---Fragment使用总结(一)
- 17.Swift-可选链接(Optional Chaining)
- 设计模式六大原则(4):接口隔离原则
- LaTeX 迅速入门
- shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
- 暴力刷机步骤
- 开机打印logcat的方法