`

Oracle 内存参数设置

 
阅读更多

Oracle 在9i版本之前,需要对内存参数手动设置,由于系统的负载是动态变化的,很难设置一个合适的值。

在Oracle9i版本之后,有了自动内存管理的功能,大大方便了DBA的工作。只要对PGA,SGA,Log_buffer 三个参数值设置好,Oralce会根据系统的负载动态平衡各个参数的设置。

如何设置PGA的参数:

在Oracle EM 内存参数页面,可以查看Oracle 对于PGA的建议,这是Oracle对当前时间以来系统的负载预估出来相应的PGA及对当前系统的性能的提高比例。

也可以通过查询下面的表

SELECT PGA_TARGET_FOR_ESTIMATE / 1024 / 1024,
       PGA_TARGET_FACTOR,
       BYTES_PROCESSED, --TOTAL BYTES PROCESSED BY ALL THE WORK AREAS CONSIDERED BY THIS ADVICE (IN BYTES)
       ESTD_EXTRA_BYTES_RW, --  ESTIMATED NUMBER OF EXTRA BYTES WHICH WOULD BE READ OR WRITTEN IF PGA_AGGREGATE_TARGET WAS SET TO THE VALUE OF THE PGA_TARGET_FOR_ESTIMATE COLUMN.
       ESTD_PGA_CACHE_HIT_PERCENTAGE, --预计CACHE数据的命中率,计算公式 BYTES_PROCESSED / (BYTES_PROCESSED + ESTD_EXTRA_BYTES_RW)
       ESTD_OVERALLOC_COUNT --若非0,则意味着PGA不够大,不能够去处理工作区域的工作量
  FROM V$PGA_TARGET_ADVICE
 ORDER BY PGA_TARGET_FOR_ESTIMATE

-------------------------------------------------------------------------------------------------------------------------

设置SGA:

在Oracle EM 内存参数页面,可以查看Oracle 对于SGA的建议,这是Oracle对当前时间以来系统的负载预估出来的相应的PGA及对当前系统的性能的提高比例。

也可以通过查询下面的表

SELECT SGA_SIZE, --SGA的大小
       SGA_SIZE_FACTOR, --以当前sga为比重,每个sga size的比例
       ESTD_DB_TIME, --所有session活动时间的总和,内存越大,相对处理的时间就越短
       ROUND(100 * ((1 - A.ESTD_DB_TIME_FACTOR) / 1), 2), --针对当前的SGA改善的百分比
       ESTD_PHYSICAL_READS --预计物理读
  FROM V$SGA_TARGET_ADVICE A
 ORDER BY SGA_SIZE;
-----------------------------------------------------------------------------------------------------------------------

设置log buffer

一般情况下不用设置这个值,默认值即可,oracle的LGWR会频繁的把此缓存的内容写入磁盘。

------------------------------------------------------------------------------------------------------------------------

SGA 的结构:

1.DATA BUFFER CACHE --数据缓存,读取数据须先把磁盘的数据写入此块区域(*)
--SHOW PARAMETER DB_CACHE_SIZE
2.SHARED POOL--共享池
  A.LIBRARY CACHE --解析过的SQL存放的区域
     A1.解析SQL
     A2.解析PLSQL
  B.DICTIONARY CACHE --数据字典的缓存区域,提高解析SQL的性能
--SHOW PARAMETER SHARED_POOL_SIZE
3.LOG BUFFER--日志缓存,后由LGWR进程写入磁盘(*)
--SHOW PARAMETER LOG_BUFFER
4.JAVA POOL
--SHOW PARAMETER JAVA_POOL
5.LARGE POOL --RMAN或者共享连接模式会用到
6.STREAM POOL --9.2以后的流复制会用到

 

其中对ORALCE 影响比较大的三个部分
1.DB CACHE SIZE
2.SHARE POOL
3.LOG BUFFER 

 

SELECT * FROM V$SGA_DYNAMIC_COMPONENTS--SGA的五个参数可以通过这个视图查看

------------------------------------------------------------------------------------------------------------------------------

以下内容来至于Oracle 编程艺术的摘抄:

PGA的设置
WORKAREA_SIZE_POLICY:这个参数可以设置为MANUAL或AUTO,如果是MANUAL,会使用排序区和散列区大小参数来控制分配的内存量;
如果是AUTO,分配的内存量会根据数据库中的当前工作负载而变化。默认值是AUTO,这也是推荐的设置
假设WORKAREA_SIZE_POLICY设置为AUTO,PGA_AGGREGATE_TARGET有一个非0值,就会使用这种新引入的自动PGA内存管理


1.PGA_AGGREGATE_TARGET是一个上限目标,而不是启动数据库时预分配的内存大小。可以把PGA_AGGREGATE_TARGET设置为一个超大的值(远远大于服务器上实际可用的物理内存量),
你会看到,并不会因此分配很大的内存

2.串行(非并行查询)会话会使用PGA_AGGREGATE_TARGET中的很少一部分,大约5%或者更少。所以,如果把PGA_AGGREGATE_TARGET设置为100 MB,可能每个工作区(例如,排序或散列工作区)只会使用大约不到5 MB。
你的会话中可能为多个查询分配有多个工作区,或者一个查询中就有多个排序/散列操作,但是不论怎样,每个工作区只会用PGA_AGGREGATE_TARGET中不到5%的内存。

3.随着服务器上工作负载的增加(可能有更多的并发查询和更多的并发用户),分配给各个工作区的PGA内存量会减少。数据库会努力保证所有PGA分配的总和不超过PGA_AGGREGATE_TARGET设置的阈值。这就像有一位DBA整天坐在控制台前,
不断地根据数据库中完成的工作量来设置SORT_AREA_SIZE和HASH_AREA_SIZE参数。稍后会通过一个测试来观察这种行为。

4.一个并行查询最多可以使用PGA_AGGREGATE_TARGET的30%,每个并行进程会在这30%中得到自己的那一份。也就是说,每个并行进程能使用的内存量大约是0.3*PGA_ AGGREGATE_TARGET / (并行进程数)


Oracle建议使用自动管理pga,当不想使用自动自动模式,可以使用alter session 命令,充分利用所有可用的资源。

---------------------------------------------------------------------------------------------------------
SGA 内存管理
要使用自动SGA内存管理,参数STATISTICS_LEVEL必须设置为TYPICAL或ALL。如果不支持统计集合,数据库就没有必要的历史信息来确定大小。

采用自动SGA内存管理时,确定自动调整组件大小的主要参数是SGA_TARGET,这个参数可以在数据库启动并运行时动态调整,
最大可以达到SGA_MAX_SIZE参数设置的值(默认等于SGA_TARGET,所以如果想增加SGA_TARGET,就必须在启动数据库实例之前先把SGA_MAX_SIZE设置得大一些)。

 

 

分享到:
评论

相关推荐

    Oracle 19c参数设置最佳实践 .xlsx

    oracle 19c数据库参数优化最佳实践

    oracle学习(内存参数设置)

    讲解了,oracle内存结构和内存参数的设置

    linux下oracle参数设置

    Oracle 不同平台的数据库安装指导为我们部署Oracle提供了一些系统参数设置的建议值,然而建议值是在通用的情况下得出的结论,并非能完全满足不同的需求。使用不同的操作系统内核参数将使得数据库性能相差甚远。本文...

    Oracle内存参数调优技术详解

    Oracle内存参数调优技术详解

    Linux环境下Oracle安装参数设置方法详解

    主要介绍了Linux环境下Oracle安装参数设置方法,本文通过代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下

    高性能动态SQL Oracle数据安全 Oracle 数据库的聚簇技术 等等

    Oracle内存结构 64 sys用户和system用户 67 Oracle SQL语句 67 GROUPING SETS分组 74 Oracle外部程序触发 75 Oracle数据库的备份与恢复 77 Oracle分区功能提高应用程序性能 79 Oracle数据库处理时间基本准则 81 入侵...

    突破oracle for win2K的2G内存限制

    如何突破Oracle 在32 bit windows环境下的1.7G限制? OS:windows2003 server (entprise) ...据说Oracle在32 bit windows平台上有1.7G的限制,但是我不知道需要调整什么参数让Oracle可以使用到更大的内存。。。

    Oracle安装内核参数设置

    安装oracle内核参数说明及设置  kernel.shmmax  说明:  · Linux进程可以分配的单独共享内存段的大值(byte)  · 64位的linux操作系统,设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值/或者1/2的物理...

    Oracle11g Memory&Storage Overview

     --Oracle 11g参数设置建议  --Oracle Database Memory Advisors 2.Storage Structure --Contolfiles&Online Redo Log Files --LMT vs DMT --ASSM --SEGments,extents&Datablocks --SPECIAL TABLESpaces:...

    深入了解oracle自动内存管理asmm

    ASMM有所了解,从使用的角度来说ASMM的出现极大地简化了Oracle内存初始化参数的设置,在ASMM的使 用上高级DBA和初学者不会有太大的差别;很多人因此而认为ASMM极大程度地减少了数据库对于专业DBA的 依赖:如果我们有...

    oracle 11g安装配置

    为用户oracle设置环境变量,并允许使用X终端 [root@dbserver ~]# groupadd oinstall //安装组 [root@dbserver ~]# groupadd dba //管理组 [root@dbserver ~]# useradd -g oinstall -G dba oracle [root@dbserver ~]...

    关于Oracle多表连接,提高效率,性能优化操作

    数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能性也就越大了. 当你向ORACLE提交一个SQL语句,ORACLE会首先在这块内存中查找相同的语句. 这里需要...

    Oracle数据库学习指南

    2. 《Oracle8 优化技术》摘录 (第二章 内存-CPU) 3. 《Oracle8 优化技术》摘录 (第三章 输入-输出) 4. EXP、IMP 命令详解 5. Oracle Index 的三个问题 6. Oracle PL-SQL语言基础 7. Oracle的分布式管理 ...

    Oracle日常维护故障定位故障排除

    11由于空间参数设置不合理导致扩展表空间、索引等失败 12由于时间格式的环境变量设置问题导致话单无法入库 13由于大事务未使用大回滚段导致事务挂起 14由于数据库连接数太多导致服务器进程数多或内存耗尽 15由于使用...

    数据库参数设置技术手册

    3 ORACLE内存结构概述 3 4 常用参数说明 3 4.1 BUFFER_POOL_KEEP 4 4.2 CPU_COUNT 4 4.3 DB_BLOCK_BUFFERS 4 4.4 DB_BLOCK_SIZE 5 4.5 DB_FILE_MULTIBLOCK_READ_COUNT 5 4.6 GLOBAL_NAMES 5 4.7 INSTANCE_NAME 5 4.8...

    Oracle 主要配置文件介绍

    Oracle 实例的多数内存和进程设置 以下是一些主要参 数的说明 1 实例的数据库名称 db_name = "cams" 2 实例名称 instance_name = cams 3 数据库控制文件的名称和位置 control_files = ...

    oracle10g课堂练习I(1)

    Oracle 内存结构 1-10 进程结构 1-12 Oracle 实例管理 1-13 服务器进程和数据库缓冲区高速缓存 1-14 物理数据库结构 1-15 表空间和数据文件 1-17 SYSTEM 和 SYSAUX 表空间 1-18 段、区和块 1-19 逻辑和物理...

    ORACLE9i_优化设计与系统调整

    §2.4.2.2 参数设置与初始化文件: 54 §2.4.2.3 在控制实用程序运行中设置跟踪参数 56 §2.4.2.4 服务器/客户包跟踪 57 §2.4.2.5 评估NET跟踪信息 58 §2.4.2.6 使用跟踪助理(Trace Assistant)检查跟踪文件 60 第...

    Oracle DBA workshop1 (中文版)

    Oracle 内存结构1-10 进程结构1-12 Oracle 实例管理1-13 服务器进程和数据库缓冲区高速缓存1-14 物理数据库结构1-15 表空间和数据文件1-17 SYSTEM 和SYSAUX 表空间1-18 段、区和块1-19 逻辑和物理数据库结构1-20 ...

Global site tag (gtag.js) - Google Analytics