oracle缓存设置(整理)
Oracle缓存由两个参数控制SGA_TARGET和PGA_AGGREGATE_TARGET,设置了这两个参数,其他的基本内存部分都由Oracle自动配置为最优值,这也是Oracle推荐的方式。
SGA_TARGET 和PGA_AGGREGATE_TARGET是动态参数,可以在不重启数据库的情况下修改。但是SGA_TARGET受限于 sga_max_size,SGA_TARGET不能超过sga_max_size,所以要增大sga_target先要增大sga_max_size,而sga_max_size是静态参数,修改sga_max_size必须重启Oracle。
所以修改sga_target和pga_aggregate_target的过程如下:
1、修改sga_max_size
SQL>ALTER SYSTEM SET sga_max_size=4g scope=spfile;
2、重启Oracle
3、设置参数sga_target和pga_aggregate_target,
alter system set sga_target=4G;
alter system set pga_aggregate_target=1g;
如果使用的是10g,已经是ASM, oracle会根据统计的信息,自动的来调整你的内存组件的大小,你只需要设置sga_target即可。当然你可以手动设置 db_cache_size,如果设置了的话,Oracle会在自动调整内存大小的时候把这个作为db_cache_size的最小值。
对于sga_target,在动态修改的时候,最大值不能操过sga_max_size, 如果是 用scope=spfile这个方式来修改可以超过sga_max_size,应该此时sga_max_size也跟着变大了,如果超过的话。
Oracle 对数据库的cache有他自己的计算的,10g以后,内存是动态的根据对你使用系统的统计来进行调整的,如果出现问题,这块不是原因,你之所以db cache还没有上去,可能是访问的数据比较少,不过你加大db_cache_size的值,会保留这个内存空间的,但是也是一样的,数据 load到内存里,才看得到变化。
数据访问是什么样的访问,你的系统是OLAP还是OLTP,这些应用上的东西对你的决定也有影响的,要谨记,数据库的优化和维护,不仅仅是DBA来做的。如果是到了只能通过DBA来做这一步的话,就相当于看病已经到了拿手术刀这一步了。 你的改变带来的风险和代价最高。
要想减少磁盘读,只能增大内存的使用.楼主可以看看这个视图v$db_cache_size,并执行下面的查询:
select block_size, size_for_estimate, size_factor, estd_physical_read_factor, estd_physical_reads from v$db_cache_advice;
Oracle在这个视图中针对db_cache_size的大小会给出一些建议。
下面解释几个列的含义
size_for_estimate:估计的cache size大小
size_factor: 估计的cache size大小与当前大小的比值
estd_physical_reads:在估计的cache size大小情况下,会产生的物理读数量
estd_physical_read_factor:估计的物理读数量与当前物理读数量的比值。
例子:
SIZE_FOR_ESTIMATE SIZE_FACTOR ESTD_PHYSICAL_READ_FACTOR ESTD_PHYSICAL_READS
20 0.0893 6.1454 270840
40 0.1786 3.0632 135003
60 0.2679 2.4908 109775
80 0.3571 2.1411 94362
100 0.4464 1.9619 86464
120 0.5357 1.8235 80366
140 0.625 1.6081 70873
160 0.7143 1.5038 66275
180 0.8036 1.3957 61510
200 0.8929 1.1541 50861
220 0.9821 1.0089 44465
224 1 1 44072
240 1.0714 0.8524 37568
260 1.1607 0.8184 36068
280 1.25 0.7965 35103
300 1.3393 0.793 34948
320 1.4286 0.7908 34853
340 1.5179 0.7905 34841
360 1.6071 0.7905 34841
380 1.6964 0.7905 34841
400 1.7857 0.7873 34698
从上面的数据中可以看到,当前db_cache_size为224M,其物理读为44072,增加cache size大小会减少物理读,当cache size到340M时,物理读的减少不再明显,因此db_cache_size大小为340M在目前情况下是一个合适的值。
由于这里用的是自动共享内存管理方式,应该增加sga_target,这样db_cache_size大小会相应增加,要增加sga_target要先增加sga_max_size。
分享到:
相关推荐
Oracle缓存连接——Timesten体系结构是一种优化数据库性能的技术,它通过在内存中缓存Oracle数据库的部分或全部数据来加速查询和事务处理。Timesten是Oracle公司提供的一款高性能的内存数据库,专为实时应用设计,能...
ORACLE 缓存性能调整与优化研究 在当今的信息时代,数据库已经成为人们进行数据存储、数据共享和数据处理以及信息管理的重要工具。 Oracle 数据库作为一种关系型数据库,在实际应用中,缓存性能调整和优化变得非常...
Oracle Coherence是一个企业级的分布式集群缓存框架。具有自管理,自恢复,高可用性,高扩展性等优良特点,在电信BOSS等项目中有很大的应用价值。 压缩包里面有最新版Oracle Coherence 3.7.1,加上中文资料。
在Spring+iBatis+Oracle体系中,缓存可以分为两种类型:一级缓存(本地缓存)和二级缓存。 一级缓存是iBatis默认提供的,它存在于SqlSession级别,同一SqlSession内的多次查询会共享结果,避免了重复的数据库访问。...
Oracle RAC数据库缓存优化方法探讨 Oracle RAC(Real Application Clusters)是一种高可用性的关系数据库集群解决方案,能够提供高性能、可靠性和可扩展性的数据存储服务。在现代信息化社会中,数据库系统的可靠性...
### Oracle SGA 设置详解 #### 一、Oracle SGA 概述 在Oracle数据库系统中,SGA(System Global Area)是所有用户进程共享的一块内存区域,它为Oracle实例提供了一个公共的数据和控制信息存储区。SGA的合理配置...
### Oracle中设置自增主键方法详解 在Oracle数据库中,自增主键是一种非常实用且常见的设计模式,它能够确保表中的每一条记录都拥有一个唯一的标识符,这对于数据的管理和查询非常重要。本文将详细介绍如何在Oracle...
Nginx将作为反向代理服务器,将HTTP请求转发到TOMCAT,提供负载均衡和缓存功能。 总结来说,本章节涵盖了Oracle数据库XE的安装、环境配置、旧版APEX的卸载和新版的安装,以及ORDS的部署。这个过程完成后,你将拥有...
### PowerDesigner 创建 Oracle 数据库表并设置主键自动增长 #### 一、PowerDesigner与Oracle数据库集成概述 PowerDesigner是一款强大的数据库设计工具,它能够帮助开发者进行数据建模、概念设计以及物理数据库的...
### Oracle权限设置详解 在Oracle数据库管理中,权限设置是一项非常重要的任务,它不仅涉及到数据库的安全性,还关乎数据的完整性和系统的稳定性。本文将基于提供的文件信息中的内容,详细介绍Oracle权限设置的相关...
《ORACLE数据库参数设置技术手册》是一份详细指导如何配置Oracle数据库系统参数的重要参考资料,尤其对于数据库管理员和系统架构师来说,是优化数据库性能、确保系统稳定运行的关键工具。手册内容涉及了数据库的多个...
主要内容包括:理解SQL调整在Oracle总体微调中地地位,使用诸如内嵌视图和BIF扩展提高Oracle SQL性能,确定并报告程序库缓存中的SQL语句,调整SQL表访问、完整表扫描和平行查询,运行TKPROF获得SQL跟踪报告,使用...
### Oracle 内存设置问题详解 #### 一、引言 在Oracle数据库管理与优化过程中,内存设置是一项至关重要的任务。合理的内存配置不仅能提高数据库性能,还能确保系统的稳定运行。本文将围绕“Oracle内存设置问题”这...
《基于Solaris的Oracle RAC数据库缓存优化方法研究》探讨了在Solaris操作系统环境下,如何优化Oracle Real Application Clusters (Oracle RAC)数据库的缓存以提升性能。Oracle RAC是一种集群数据库技术,它允许多个...
Oracle JDBC 连接池和缓存是数据库管理中优化数据库访问效率的重要机制。在Java应用程序中,使用JDBC(Java Database Connectivity)与Oracle数据库交互时,通过连接池可以有效地管理和复用数据库连接,减少每次建立...
Oracle 应用服务器 Web 高速缓存 10g 是 Oracle 公司推出的一款高效、可扩展的 Web 内容缓存解决方案,主要用于优化 Web 应用性能,减轻后端服务器的压力,提高用户访问速度。它通过在靠近用户的网络边缘位置存储...
以下是如何在 ORACLE 中设置访问多个 SQL Server 数据库的详细步骤: 1. **安装透明网关组件** 首先,确保你的 ORACLE 安装包含了透明网关组件,这通常在 ORACLE9i Standard Edition 或 ORACLE9i Enterprise ...
【Oracle DCN缓存一致性技术】Oracle 数据库更改通知(DCN)是一种高效的数据一致性解决方案,尤其适用于J2EE多层架构的应用程序。在这样的环境中,数据缓存能够显著提高系统的响应速度,但如何保证缓存与数据库之间...
【Oracle JDBC连接缓存对JSP数据库处理性能的优化】 Oracle JDBC连接缓存技术是针对JSP页面数据库处理性能优化的重要手段。在电子商业站点中,动态Web页面对数据库的高效访问是性能和稳定性关键所在。JDBC连接缓存...