[转帖]如何判断oracle内存是否够用

如何,判断,oracle,内存,是否,够用 · 浏览次数 : 0

小编点评

## 数据库内存分配与性能影响因素 以下是数据库内存分配大小与性能影响因素的总结: **内存大小与响应时间:** * 64G vs 128G 的内存分配,批量查询1和2的速度分别为 0.18 和 0.08 秒。 * 64G 的内存分配,批量查询3的速度为 0.329 秒。 * 128G 的内存分配,批量查询1的速度为 0.185 秒,批量查询2的速度为 0.329 秒。 * 128G 的内存分配,批量查询3的速度为 0.601 秒。 **内存区域调整与自动内存管理:** * 调整各个内存区域的大小,可以提升性能,但手动设置的内存参数可能在某些场景下比较快,但换一个场景就可能很差。 * Oracle 11g 的自动内存管理已成为主流,可以有效地管理内存,减少手动设置参数带来的误差。 **其他重要因素:** * 数据库总内存不变的情况下,调节各个内存区域的大小,有时会有惊喜,但一般来讲,Oracle自动内存管理已成为主流,手工设置的参数可能在某个场景下比较快,但换一个场景就可能很差,不如让Oracle自动来做这件事。 **建议:** * 在内存分配问题中,可以尝试以下方法: * 使用大内存分配技术,例如使用 128G 的内存分配。 * 使用 In-Memory 选项,例如使用 64G 的内存分配,并在 SQL 查询中使用 In-Memory 指令。 * 适当调整数据库配置参数,例如内存分配率、连接池大小等。 * 使用监控工具,实时监控数据库内存情况。

正文

https://www.modb.pro/db/431194

 

给数据库分配的内存,在topas当中看,是属于计算内存,从内存栈分类上来说是共享内存。如果给数据库分配XX GB内存,那么数据库使用的内存不含超过这个限制。但至于这些内存够不够用,就要看业务系统是否能够接受当前的响应时间等性能指标,能接受就是内存够用。

如果想知道扩大内存后能起到什么效果(SQL的响应时间方面),最好的方法还是扩大内存实测一把。

另外,也可以打出awr报告,查看SGA advisor,PGA advisor等分析建议,awr会给出,当内存配置达到多少时,物理IO能够减少多少。这样能有一个大致的判断。

举几个内存大小对业务响应时间影响的例子。

相同的应用、相同的业务压力(TPS)、相同的CPU等硬件资源的配置,仅仅是内存有差异 64G VS 128G。对比sql查询的响应时间指标(单位:秒)(Oracle内部的SGA PGA等内存参数采用自动分配策略)

不采用In-Memory特性       64G       128G

批量查询1                        4.2           1.4

批量查询2                        0.53         0.18

批量查询3                        12.3        2.6

采用In-Memory特性       64G            128G

批量查询1                        0.185         0.08

批量查询2                        0.329         0.146

批量查询3                        1.907         0.601

另外,在数据库总内存不变的情况下,调节各个内存区域的大小,有时会有惊喜,但一般来讲,oracle11g之后自动内存管理已成为主流,手工设定的参数可能在某个场景下比较快,但换一个场景就可能很差,不如让Oracle自动来做这件事。除非遇到自动内存管理的某个bug。

与[转帖]如何判断oracle内存是否够用相似的内容:

[转帖]如何判断oracle内存是否够用

https://www.modb.pro/db/431194 给数据库分配的内存,在topas当中看,是属于计算内存,从内存栈分类上来说是共享内存。如果给数据库分配XX GB内存,那么数据库使用的内存不含超过这个限制。但至于这些内存够不够用,就要看业务系统是否能够接受当前的响应时间等性能指标,能接受

[转帖]如何应对变慢的Redis-波动的响应延迟

Redis突然变慢了,如何排查呢 文章目录 问题认定应对方案Redis自身操作特性慢查询命令过期key操作 文件系统AOF解决方案 操作系统Swap内存大页 CheckList 问题认定 如何判断Redis是不是真的变慢了?通过Redis的响应延迟 大部分时候,Redis延迟很低,某些时刻,Redi

[转帖]nginx 白名单处理

Nginx如何配置根据cookie或header自定义字段进行跳转 一、根据cookie中的值来判断跳转 $http_cookie这个关键词是读取cookie的全部信息,那么我们是需要判断cookie中包含的某个字段的值,比如我设置openid=5,我该如何获取那么,我们可以通过$cookie_op

[转帖]一个用于辅助分析‘Java内存泄露’的小工具

https://www.jianshu.com/p/658cb6cbfe61 histo对比工具 这是一个用于辅助分析‘Java内存泄露’的小工具 源码地址 实现原理 分析fgc前后的类实例对象分布变化来辅助判断 如果多次fgc后,一个类的对象实例没有发生变化或者越来越多,则需要重点排查 操作步骤

[转帖]优化工作中的取舍和大势判断

最近这段时间在参与一个优化项目,所以思考优化的事情比较多。因此最近的文章中,优化相关的内容会比较多,如果有朋友想看些其他方面的题材,可以留言告知。实际上我每天写的东西大多数都是前一天的思想内容,凭空找个话题来写上一篇,时间长了肯定会越来越空洞无物,我也没有那个本事,脑子里的积累写上几年还游刃有余。关

[转帖]Shell if 条件判断

Shell 语言中的if条件 一、if的基本语法: if [ command ];then 符合该条件执行的语句 elif [ command ];then 符合该条件执行的语句 else 符合该条件执行的语句 fi 二、文件/文件夹(目录)判断 [ -b FILE ] 如果 FILE 存在且是一个

[转帖]传统机械硬盘工作原理

如图,机械硬盘主要由 磁片、马达、磁头臂、磁头组成 磁片上有许多“小格”,能够存储两种极性,也就是所谓的010110等二进制,来达到存储数据的效果 在工作时,磁头可以判断极性,悬浮在磁片上几纳米,通过磁头臂与马达的旋转,就可以读取磁盘表面的数据 磁盘表面又会划分为无数的磁道和许许多多的扇区 假设磁盘

[转帖]SHELL—— awk两个特殊模式(BEGIN 和 END)及awk高级应用(条件判断、循环)

一、Awk 的两个特殊模式 BEGIN 和 END,BEGIN 被放置在没有读取任何数据之前,而 END 被放置在所有的数据读取完成以后执行体现如下: BEGIN{}: 读入第一行文本之前执行的语句,一般用来初始化操作 {}: 逐行处理 END{}: 处理完最后以行文本后执行,一般用来处理输出结果

[转帖]shell基础-bash变量-预定义变量

1. 预定义变量 预定义变量说明$?用于判断上一条命令的执行状态。如果上一条命令执行正确,则这个变量的值是0;如果上一条命令执行错误,则这个变量的值是除0之外的其他数(具体是哪个数,由命令的撰写者决定)。$$当前进程的进程号(PID)。$!在后台运行的最后一个进程的进程号(PID)。 示例: [ro

[转帖]深入理解Redis的持久化

https://www.cnblogs.com/ivictor/p/9749465.html RDB RDB是将当前数据生成快照保存到硬盘上。 RDB的工作流程: 1. 执行bgsave命令,Redis父进程判断当前是否存在正在执行的子进程,如RDB/AOF子进程,如果存在bgsave命令直接返回。