Oracle内存参数调优技术详解

Oracle 内存分配及优化策略 监控和调整SGA_TARGET参数:通过监控系统的SGA利用率和性能指标,动态调整SGA_TARGET参数的大小,以适应系统的需求。使用自动共享池管理(Automatic Shared Memory Management):启用自动共享池管理功能,让Oracle自动调整共享池的大小,以优化共享池的利用率和性能。SGA是Oracle数据库中的核心内存区域,用于存储共享的数据和控制信息。使用适当的内存分配比例:根据系统的工作负载特征和资源需求,合理分配SGA和PGA的大小比例,以获得最佳的性能。 阅读详情

前言

近来公司技术,研发都在问我关于内存参数如何设置可以优化oracle的性能,所以抽时间整理了这篇文档,以做参考.

目的

希望通过整理此文档,使大家对oracle内存结构有一个全面的了解,并在实际的工作中灵活应用,使oracle的内存性能达到最优配置,提升应用程序反应速度,并进行合理的内存使用.

内容

实例结构

oracle实例=内存结构+进程结构

oracle实例启动的过程,其实就是oracle内存参数设置的值加载到内存中,并启动相应的后台进程进行相关的服务过程。

进程结构

oracle进程=服务器进程+用户进程

几个重要的后台进程:

DBWR:数据写入进程.

LGWR:日志写入进程.

ARCH:归档进程.

CKPT:检查点进程(日志切换;上一个检查点之后,又超过了指定的时间;预定义的日志块写入磁盘;例程关闭,DBA强制产生,表空间offline)

LCKn(0-9):封锁进程.

Dnnn:调度进程.

内存结构(我们重点讲解的)

内存结构=SGA(系统全局区)+PGA(程序全局区)

SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写

 

我们重点就是设置SGA,理论上SGA可占OS系统物理内存的1/2——1/3

原则:SGA+PGA+OS使用内存<总物理RAM

SGA=((db_block_buffers*blocksize)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB

1、SGA系统全局区.(包括以下五个区)

A、数据缓冲区:(db_block_buffers)存储由磁盘数据文件读入的数据。

大小: db_block_buffers*db_block_size

         Oracle9i设置数据缓冲区为:Db_cache_size

         原则:SGA中主要设置对象,一般为可用内存40%。

B、共享池:(shared_pool_size):数据字典,sql缓冲,pl/sql语法分析.加大可提速度。

原则:SGA中主要设置对象,一般为可用内存10%

C、日志缓冲区:(log_buffer)存储数据库的修改信息.

         原则:128K ---- 1M 之间,不应该太大

D 、JAVA池(Java_pool_size)主要用于JAVA语言的开发.

         原则:若不使用java,原则上不能小于20M,给30M通常就够了
E、 大池(Large_pool_size)  如果不设置MTS,主要用于数据库备份恢复管理器RMAN。

         原则:若不使用MTS,5---- 10M 之间,不应该太大

SGA=. db_block_buffers*db_block_size+ shared_pool_size+ log_buffer+Java_pool+size+large_pool_size

       原则: 达到可用内存的55-58%就可以了.

2、PGA程序全局区

PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收.

A、Sort_area_size 用于排序所占内存

B、Hash_area_size 用于散列联接,位图索引

这两个参数在非MTS下都是属于PGA ,不属于SGA,是为每个session单独分配的,在我们的服务器上除了OS + SGA,一定要考虑这两部分
原则:OS 使用内存+SGA+并发执行进程数*(sort_area_size+hash_ara_size+2M) < 0.7*总内存

实例配置

一:物理内存多大

二:操作系统估计需要使用多少内存

三:数据库是使用文件系统还是裸设备

四:有多少并发连接

五:应用是OLTP 类型还是OLAP 类型

基本掌握的原则是, db_block_buffer 通常可以尽可能的大,shared_pool_size 要适度,log_buffer 通常大到几百K到1M就差不多了

     A、如果512M RAM 单个CPU   db_block_size 是8192 bytes
 SGA=0.55*512M=280M
左右

建议 shared_pool_size = 50M, db_block_buffer* db_block_size = 200M
具体: shared_pool_size =52428800 #50M

db_block_buffer=25600      #200M

log_buffer = 131072         # 128k (128K*CPU个数)

             large_pool_size=7864320      #7.5M

             java_pool_size = 20971520    # 20 M

             sort_area_size = 524288      # 512k (65k--2M)

             sort_area_retained_size = 524288   # MTS 时 sort_area_retained_size = sort_area_size

B、如果1G RAM     单个CPU   db_block_size 是8192 bytes
SGA=0.55*1024M=563M
左右
建议 shared_pool_size = 100M , db_block_buffer* db_block_size = 400M
具体: shared_pool_size=104857600    #100M

          db_block_buffer=51200         #400M

 log_buffer = 131072         # 128k (128K*CPU个数)

               large_pool_size=15728640       #15M

          java_pool_size = 20971520    # 20 M

sort_area_size = 524288      # 512k (65k--2M)

              sort_area_retained_size = 524288   # MTS 时 sort_area_retained_size = sort_area_size

 

C、如果2G     单个CPU   db_block_size 是8192 bytes

SGA=0.55*2048M=1126.4M左右
建议 shared_pool_size = 200M , db_block_buffer *db_block_size = 800M

       具体: shared_pool_size=209715200    #200M

          db_block_buffer=103192         #800M

 log_buffer = 131072            # 128k (128K*CPU个数)

               large_pool_size= 31457280      #30M

          java_pool_size = 20971520      # 20 M

sort_area_size = 524288         # 512k (65k--2M)

              sort_area_retained_size = 524288   # MTS 时 sort_area_retained_size = sort_area_size

 

 

假定64 bit ORACLE

内存4G

shared_pool_size = 200M , data buffer = 2.5G

 

内存8G

shared_pool_size = 300M , data buffer = 5G

 

内存 12G

shared_pool_size = 300M-----800M , data buffer = 8G

参数更改方式

oracle8i:

主要都是通过修改oracle启动参数文件进行相关的配置

参数文件位置:

d:/oracle/admin/DB_Name/pfile/init.ora

按以上修改以上参数值即可。

Oracle9i:

两种方式:第一种是修改oracle启动参数文件后,通过此参数文件再创建服务器参数文件

          第二种是直接运行oracle修改命令进行修改。

SQL>alter system set db_cache_size=200M scope=spfile;

SQL>alter system set shared_pool_size=50M scope=spfile;

清理异常值(MAD:绝对中位差) 清理异常数据: 中位数绝对偏差(MAD):用来描述单变量样本在定量数据中可变的一种标准 在统计学中,绝对中位差是刻画一元数据样本变化的一个鲁棒度量。由公式可以看出,其求解还算简单,给定一个数据样本集,首先求其中位数,然后求原始数据减去中位数的绝对值从而形成一个新的数据样本,再求新的数据样本的中位数即为绝对中位差。比如说有一个数据样本集X={2 3 8 7 9 6 4},这时候数据的中位数是6,原... 阅读详情

相关推荐

Win11 C盘爆满别慌!手把手教你安全迁移AppData和用户文件夹(附一键脚本)

本文针对Win11 C盘空间不足问题,提供了一套安全有效的解决方案。通过深入解析用户目录结构,指导用户利用符号链接和Robocopy工具,将AppData、下载文档等占用大户迁移至其他分区,并附带了自动化脚本,从根本上实现C盘瘦身,同时确保系统稳定和数据安全。

weixin_29231221的博客 2084

【数据库】Oracle内存结构与参数调优

在操作系统层面,默认情况下内存页大小通常为4KB。大页是一种内存管理机制,将标准内存页尺寸增大,例如从4KB改为2MB。使用大页可以减少TLB(Translation Lookaside Buffer)未命中的情况,从而降低页交换频率和I/O开销,提高系统的性能,特别是在大规模内存管理和Oracle数据库等场景下。

FixPng的博客 4941

关于华为高斯数据库出现Invalid or unsupported by client SCRAM mechanisms定位解决的过程

最近公司有个新项目使用的是高斯数据库,因为我们的项目是直接从别的项目组拿来的,配置都是已经配好的,但是在放到正式环境上之后出现报错。起初我们以为是测试和正式的版本不一致,但是结果是版本一致的。最后这个问题搞了我们几个小时,都没法解决。

Curtisjia的博客 3174

优化Oracle数据库性能:合理设置数据库参数

Oracle 数据库是一种功能强大的关系型数据库管理系统,但在处理大量数据和复杂查询时,性能问题可能会成为一个挑战。为了提高数据库的响应速度和效率,我们可以采取一系列的优化措施。 合理设置数据库参数是提高 Oracle 数据库性能的重要策略之一。通过调整内存管理参数、并发处理参数和日志恢复参数,可以最大程度地利用数据库资源,提高查询性能、并发性能和可靠性。在设置数据库参数时,需要考虑数据库的大小、负载情况和业务需求。因此,建议在优化数据库性能之前,进行充分的测试和评估,以确定最佳的参数设置策略。

小蓝枣的博客 5683

JAVA进阶面试题:如何设计一个高并发系统?

如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先。 如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿 offer 基本如探囊取物,没啥问题。面试官也绝对不会这样来问你,否则他就是蠢。 假设你在某知名电商公司干过高并发系统,用户上亿,一天流量几十亿,高峰期并发量上万,甚至是十万。那么人家一定会仔细盘问你的系统架构,你们系统啥架构?怎么部署的?部署了多少台机器

uuop155的博客 1019

java毕设:基于springboot的服装搭配推荐系统(springboot+layui+jq+html)1011

项目描述 基于springboot的服装搭配推荐系统: 基于天气服装搭配推荐系统为用户提供未来一周的天气预报情况,并根据预报天气和用户现有的服装进行着装搭配,以及显示未来6小时精确温度数据为用户提供更精确的天气信息便于用户在出行前对自己的着装进行调整,每日用户可以根据自己当日对系统推荐的着装搭配舒适度进行反馈,系统将根据用户的反馈对用户着装的保暖系数进行相应调整,通过多次的反馈和调整形成对用户着装的个体化和精确化的推荐。 本系统可以为用户提供以下服务: 1.未来五天的天气信息显示; 2.未来六小时内天气温度

qq_2537071370的博客 3646

Oracle数据库查看与修改内存配置

如果我们升级了服务器物理内存配置,就需要对Oracle的内存参数进行修改。的内存分配值,例如Shared Pool和Buffer Cache。在自动共享内存管理模式下,还可以手动为SGA中的某些重要组件指定。如果数据库使用了大页,还需要调优操作系统的大页配置。不为0,表示当前数据库使用的是自动共享内存管理模式。需要注意的是,服务器物理内存变化通常还涉及内核参数。然后重启数据库即可生效。是需要重点关注的内容。

Sebastien23的博客 1万+

SKILL 是什么?怎么做?五分钟 带你从入门到精通

skill-creator 是 Anthropic 官方开源的“元技能”——一个专门用来创建 Skill 的 Skill。你只需要用自然语言描述想要什么功能,它会自动生成。从更宏观的视角看,Skills 的出现标志着 AI 编程的一次范式转变。在传统的 AI 编程中,代码是确定性的:1 是 1,2 是 2。但到了大模型时代,代码变得不确定——你不知道模型会输出什么,不知道它会不会突然删掉几行代码。这种不确定性让很多开发者感到不安。Skills 把这套逻辑又拉了回来。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 640

Oracle内存参数调优技术详解[转]

Oracle内存参数调优技术详解 前言 近来公司技术,研发都在问我关于内存参数如何设置可以优化oracle的性能,所以抽时间整理了这篇文档,以做参考. 目的 希望通过整理此文档,使公司同事对oracle内存结构有一个全面的了解,并在实际的工作中灵活应用,使oracle的内存性能达到最优配置,提升应用程序反应速度,并进行合理的内存使用. 内容 实例结构 oracle实例=内存...

abc123098098的博客 251

图形推理2-四大类六提示

图形推理笔记2

小y的学习笔记 6739

【人工智能】全面盘点国内AI九大模型:各擅胜场的智能先锋(豆包、文心一言、讯飞星火、通义千问、Kimi、智谱清言、腾讯元宝、秘塔、天工AI)

追求性价比与全能:选豆包,适合个人与中小企业日常使用;侧重中文创作与理解:选文心一言,文学与商业文案创作首选;需要专业语音交互:选讯飞星火,智能客服、车载场景必备;看重生态与多场景:选通义千问,适配电商、办公等企业需求;处理超长文本任务:选Kimi,文档分析、学术研究的利器;专注深度推理创作:选智谱清言,学术与创意写作的伙伴;依赖腾讯生态协同:选腾讯元宝,日常轻量需求的便捷之选;深耕法律学术领域:选秘塔,专业文本处理的权威工具;布局前沿技术体验:选天工AI,享受接近国际顶尖的智能服务。

奶爸的编程之路,也就一周冷个三天 1121

oracle内存参数 规则,Oracle内存参数调优技术详解

Oracle内存参数调优技术详解说明这段时间在学习Oracle的调整优化,在网上找到了一些资料,就转载到这里,与大家共同分享,希望对大家有帮助!内容实例结构oracle实例=内存结构+进程结构oracle实例启动的过程,其实就是oracle内存参数设置的值加载到内存中,并启动相应的后台进程进行相关的服务过程。进程结构oracle进程=服务器进程+用户进程几个重要的后台进程:DBWR:数据写入进程....

weixin_28706397的博客 448

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Oracle内存参数调优技术详解——转载

<!-- @font-face {font-family:宋体} @font-face {font-family:"/@宋体"} p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideo

sunyuzhou的专栏 684

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Oracle内存参数调优技术详解-转贴

前言近来公司技术,研发都在问我关于内存参数如何设置可以优化oracle的性能,所以抽时间整理了这篇文档,以做参考.目的希望通过整理此文档,使大家对oracle内存结构有一个全面的了解,并在实际的工作中灵活应用,使oracle的内...

cuishuobi4947的博客 118

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: oracle调优_JOHN
下一篇: Linux Vi的使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值