windows下Oracle11g的优化

通常需要设置的参数:

  ● DB_BLOCK_BUFFERS

  该参数决定了数据库缓冲区的大小,这部分内存的作用主要是在内存中缓存从数据库中读取的数据块,数据库缓冲区越大,为用户已经在内存里的共享数据提供的内存就越大,这样可以减少所需要的磁盘物理读写次数。在Oracle 9i以前版本数据库中,缓冲是由db_block_buffers*db_block_size来决定,db_block_sizBe参数是在创建数据库时设置的,它决定数据库里每个块的大小,9i以前不能改变已经存在的数据库的块大小,因此应该在最初创建数据库时就确保设置适当的数据库块大小。在创建数据库时设置为8kdb_block_buffers*db_block_size的乘积占物理内存的20%30%,物理内存在1G以内,可以占20%1G2G之间可占25%,物理内存在2G以上,可以占30%,甚至更高。

  说明:Oracle 8i以后的数据缓冲区(data buffer)实际可由三部分组成,分别是默认池、保留池(buffer keep)和回收池(buffer recycle)。保留池可用于存放需要极快的访问的小表,回收池可用于存放需要全表扫描的大表。保留池和回收池的大小分别由参数buffer_pool_keepbuffer_pool_recycle决定。这两个参数通常在做性能调整时才设置,因此不建议设置这两个参数。

  ● shared_pool_size

  Shared pool由三部分组成,分别是Dictionary cache(包括数据字典的定义,如表结构、权限等)、Library cache(包括共享的sql游标、sql原代码以及执行计划、存储过程和会话信息)和Control structure。它的大小由初始化参数shared_pool_size控制,它的作用是缓存已经被解析过的SQL,使其能被重用,不用再解析。SQL的解析非常消耗CPU的资源,如果一条SQLShared pool中已经存在,则进行的仅是软解析(在Shared pool中寻找相同SQL),这将大大提高数据库的运行效率。当然,这部分内存也并非越大越好,太大的Shared poolOracle数据库为了维护共享结构,将付出更大的管理开销。这个参数的设置建议在150M500M之间。如果系统内存为1G,该值可设为150M200M;如果为2G,该值设为250M300M;每增加1G内存,该值增加100M;但该值最大不应超过500M。(Shared pool不足,Oracle将报4031错)。

  ● shared_pool_reserved_size

  它的作用是在shared pool中保留一块区域以放置一些大对象(如大型软件包),如不设置此参数,系统缺省保留5%shared pool空间用于放置大对象,不建议设置该参数,让系统自动分配即可。

  ● Sort_area_size

  该参数是当查询需要排序的时候,Oracle将使用这部分内存做排序,当内存不足时,使用临时表空间做排序。这个参数是针对会话(session)设置的,不是针对整个数据库。即如果应用有170个数据库连接(session),假设这些session都做排序操作,则Oracle会分配8×170等于1360M内存做排序,而这些内存是在OracleSGA区之外分配的,即如果SGA区分配了1.6G内存,Oracle还需要额外的1.3G内存做排序。建议该值设置不超过3M,当物理内存为1G时,该值宜设为1M或更低(如512K);2G时可设为2M;但不论物理内存多大,该值也不应超过3M

  ● sort_area_retained_size

  这个参数的含义是当排序完成后至少为session继续保留的排序内存的最小值,该值最大可设为等于Sort_area_size。这样设置的好处是可以提高系统性能,因为下次再做排序操作时不需要再临时申请内存,缺点是如果Sort_ara_size设得过大并且session数很多时,将导致系统内存不足。建议该值设为Sort_area_size10%20%左右,或者不设置(缺省为0)。

  ● Log_buffer

  Log_buffer是重做日志缓冲区,对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR进程将它写入磁盘。LGWR的写入条件是:用户提交、有1/3重做日志缓冲区未被写入磁盘、有大于1M重做日志缓冲区未被写入磁盘、超时、DBWR需要写入的数据的SCN 号大于LGWR记录的SCN 号,DBWR 触发LGWR写入。从中可以看出,大于1Mlog buffer值意义并不大,建议不论物理内存多大,该值统一设为1M

  ● Large_pool_size

  Oraclelarge_pool用于MTS、并行查询和RMAN。如果使用了MTSRMANlarge_pool特别有用,它可以降低用户对shared_pool的争用,这个参数不推荐设置。(或设为1M)。

  ● Java_pool_size

  Oracle 8i以后版本中,Oracle数据库内置了对Java的支持,短消息系统并未使用这些功能,因此java_pool_size的值可以减少到1M。但如果数据库安装时选择了JServer组件,则这个值可以设置为20M30M之间。(可以查询v$option动态视图,如果java那一项值为true,则表示安装了JServer,为false,表示未安装)。

  ● SESSION_CACHED_CURSOR

  该参数指定要高速缓存的会话游标的数量。对同一SQL语句进行多次语法分析后,它的会话游标将被移到该会话的游标高速缓存中。这样可以缩短语法分析的时间,因为游标被高速缓存,无需被重新打开。设置该参数有助于提高系统的运行效率,建议无论在任何平台都应被设为50

  ● re_page_sga

  该参数表示将把所有SGA装载到内存中,以便使该实例迅速达到最佳性能状态。这将增加例程启动和用户登录的时间,但在内存充足的系统上能减少缺页故障的出现。建议在2G以上(含2G)内存的系统都将该值设为true

  ● ML_LOCKS

  该参数表示所有用户获取的表锁的最大数量。对每个表执行 DML 操作均需要一个 DML锁。例如,如果3个用户修改 2 个表,就要求该值为 6。该值过小可能会引起死锁问题。这个参数同transaction参数有关系,缺省为4倍的transaction大小。建议该参数不应该低于600,可以检查系统的当前值,若比600小,则将transaction参数改为150以上,dml_locks参数会自动变为transaction4倍。

  ● OB_QUEUE_PROCESS

  该参数指定每个例程的SNP作业队列进程的数量。当使用job或复制时,一定要设置该参数,推荐设为34。并行查询中需要设置的参数并行查询仅当在多CPU处于空闲状态且数据分布在不同磁盘时才会对某些查询(有全表扫描操作)的性能产生有益的影响,而且即使在这种情况下,并行查询服务器的最大数量最好也不要超过CPU的数量。这里面应该修改的参数如下。

● DB_FILE_MULTIBLOCK_READ_COUNT

  该参数主要同全表扫描有关。当Oracle在请求大量连续数据块的时候,该参数控制块的读入速率。DB_FILE_MULTIBLOCK_READ_COUNT参数能对系统性能产生较大的影响,它和DB_BLOCK_SIZE参数之间有重要关系。因为在Unix物理层上,Oracle总是以最小64K的数据库块进行读入,因此应该使这2个参数的乘积为64K。即如果DB_BLOCK_SIZE8192,则DB_FILE_MULTIBLOCK_READ_COUNT应设为8

  ● DB_BLOCK_LRU_LATCHES

  在多CPU机器上通过初始化参数DB_BLOCK_LRU_LATCHES允许多个LRU锁存器。当DBWR和服务器进程扫描数据块缓冲Cache时,它们需要获取LRU锁存器。这种锁存器对于避免缓冲区变脏以及避免被其他进程改变都是必要的,这也避免了扫描时返回不一致的结果。如果没有使用锁存器,某个扫描自由缓冲区的进程可能会发现一个自由缓冲区,但是立刻就可能被其他进程使用。每一个LRU 锁存器至少保护50个数据块缓冲区。所有缓冲区都被Oracle基于Hash算法分配到特定的LRU锁存器之上。如果该值太小,在数据库活动量很大时就会潜在地导致竞争。在多CPU机器之上这种竞争会高一些,这是因为多个服务器进程可能排队以获取一个LRU Cache。该参数默认值为CPU个数的一半,在多CPU系统中,推荐设为等于CPU数目或CPU数目的2倍~3倍(在Oracle 9i中,该参数已经变为一个隐含参数)。

  ● OPEN_CURSORS

  指定一个会话一次可以打开的游标 (环境区域) 的最大数量,并且限制PL/SQL使用的PL/SQL游标高速缓存的大小,以避免用户再次执行语句时重新进行语法分析。请将该值设置得足够高,这样才能防止应用程序耗尽打开的游标。此值建议设置为250300

  ● LOG_CHECKPOINT_INTERVAL

  该参数同检查点有关,检查点由ckpt 进程执行,检查点发生时Oracle会同步数据文件、控制文件和redo文件。该参数指定当写入重做日志文件中的OS (而不是数据库块) 的数量达到设定值时,强制执行一次检查点。该值较低可以缩短例程恢复所需的时间,但可能导致磁盘操作过量。在Oracle 8i中该值缺省为100000。当值为0时,表示此参数不起作用。该参数的设定需要考虑的因素较多,建议使用缺省值。

  ● LOG_CHECKPOINT_TIMEOUT

  该参数仍然同检查点有关。它指定距下一个检查点出现的最大时间间隔(秒数)。将该时间值指定为0,将禁用以时间为基础的检查点。较低的值可以缩短例程恢复的时间,但可能导致磁盘操作过量。在8i中该值缺省为1800。如果想强制某一时间段后执行检查点,则用此选项。不建议修改该值。

  Oracle 9i中主要参数设置

  ● undo_management

  Oracle 9i中新引入了undo tablespace,它可以自动管理Oracle的回滚,不再需要手工建立回滚段,但9i也支持继续使用手工建立的回滚段。由Undo_management参数决定是使用undo tablespace还是使用手工建立的回滚段。如果该参数为auto,则表示使用undo tablespace。为manual,表示使用手工管理回滚段,这时同8i一样,也需要建立回滚表空间,且要建立回滚段。在9i R29i R2Oracle 9.2.X.X,下同)中,该参数缺省值为auto。建议继续使用该缺省值,即使用undo tablespace,也不用手工建立回滚段。

  ● undo_retention

  该参数的单位为秒,当undo_management参数为auto时,undo_retention表示在undo_tablespace中保留多长时间的回滚信息,Oracle 9iflash_back功能同该值有关。该值设为多大同undo_tablespace的大小有关,在9i R2中缺省值为10800,一般情况下已经够了,不建议修改该参数。

  ● sga_max_size

  Oracle 9i中该值决定了SGA区的最大值。只要SGA区不大于该值,就可以动态调整数据库缓冲区和share pool的大小。建议该值取物理内存的50%

  ● db_cache_size

  在Oracle 9i中,数据库缓冲区的大小由db_cache_size决定,Oracle 8i中的db_block_buffers被取消。db_cache_size的单位是字节,它直接决定了数据库缓冲区的大小,而不再是块的数量。对该值的建议值可以参照Oracle 8i中对数据库缓冲区的大小建议来设置。

  ● db_nk_cache_size

  这是Oracle 9i中引入的新参数。Oracle 9i允许以不同的数据库块大(db_block_size)建立表空间。比如标准db_block_size(即建立数据库时定义的大小)为8kOracle 9i还允许以4k16k32k等不同的db_block_size值建立表空间。与此相对应,需要建立不

  同块尺寸的数据库缓冲区,这就需要定义db_nk_cache_size,如db_4k_cache_size等。考虑到我们系统的实际情况,不建议配置该参数。

  ● workarea_size_policy

  这也是Oracle 9i新引入的参数,如果该参数设为autoOracle会为所有的sessionSGA区之外分配一块大的内存区域做为UGA,该内存由pga_aggregate_target设置。每个session都在这块大内存区中做排序等操作,从而不用再设置其他的“*_area_size” 参数。该值在Oracle 9i中缺省设为auto,建议继续使用缺省值。

  ● pga_aggregate_target

  该参数指定连接到例程的所有服务器进程的目标 PGA 总内存。建议对该值设置为每1G内存增加100M,但最大不要超过500M。设置了workarea_size_policypga_aggregate_target参数后,不用再设置sort_area_size等参数。

参数调整方法

  一、确定我们的系统是使用spfile启动的9i以上):

  对于Oracle 9i以上的版本,首先要查看一下系统当前使用的配置是否是spfile

  首先,以sysdba权限登录到系统,查看当前使用的配置是spfile还是pfile

 

  SQL> conn / as sysdba
  Connected.
  SQL> show parameter spfile
  NAME                                 TYPE        VALUE
  ------------------------------------ -----------
  spfile                               string     ?/dbs/spfile@.ora

  注意蓝色部分,如果与此非常相像,则说明是spfile,否则是pfile

  如果是spfile,则首先创建一个pfile来备份,以免修改错误不能启动:

  SQL> create pfile from spfile

  File created.

  这时pfile被创建。

  如果是pfile,我们可以改用spfile启动,使用下面的方法创建spfile 并重新启动:

  SQL> create spfile from pfile
  File created.
  SQL> shutdown immediate
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  SQL> startup
  ORACLE instance started.
  Total System Global Area  630501376 bytes
  Fixed Size                  2147032 bytes
  Variable Size             452988200 bytes
  Database Buffers          167772160 bytes
  Redo Buffers                7593984 bytes
  Database mounted.
  Database opened.

  二、开始调整:[我们从这里开始配置就行了,虽然我们的内存为32G,我们也按照以下配置即可]

  我们仅以流行的4GB内存,32位系统为例:

注意:SGA的所有参数设置均需要重启服务。即设置完后,通过shutdown immediate关闭,通过startup重新启动。

增大系统全局区:

SQL> alter system set sga_target=1200m scope=spfile

  SQL> alter system set sga_max_size=1200m scope=spfile

  增大数据缓存区:

  SQL> alter system set db_cache_size=700m scope=spfile

  增大共享内存区:

  SQL> alter system set shared_pool_size=320m scope=spfile

  增大程序全局区:

  SQL> alter system set pga_aggregate_target=500m scope=spfile

  增大排序区:

  SQL> alter system set sort_area_size=30000000 scope=spfile

  增加连接数量:

  SQL> alter system set processes=600 scope=spfile

  三、查看参数:

  show parameters 查看所有参数

  show parameters db 查看所有名称带db的参数

  show parameters log 查看所有名称带log的参数

  (依此类推)

  四、注意事项:

  在32位的系统上,ORACLESGAPGA区的大小是不能超过1.7GB的,需要特别的调整,但除非必要一般不推荐这么做。但是,根据以往的使用经验,SGA区在WINDOWS下开到1.5G以上就有可能不稳。

  shared_pool_size db_cache 都在SGA内,所以这两项的大小加在一起一定要小于SGA 

告别INS-13001报错!Windows 10/11保姆级Oracle 11g安装与内存优化指南 本文提供Windows 10/11系统下Oracle 11g安装的详细教程,重点解决常见的INS-13001报错问题,并分享安装后的内存优化技巧。通过修改验证文件和合理配置内存参数,确保数据库运行稳定高效,适合开发者和学生快速搭建Oracle开发环境。 阅读详情

相关推荐

Oracle 11g 服务端安装:Windows 10/11 环境 3 步解决兼容性警告

本文详细介绍了在Windows 10/11环境下安装Oracle 11g服务端的完整步骤,重点解决兼容性警告问题。通过修改配置文件、优化安装流程和配置PL/SQL Developer,确保数据库稳定运行。文章还提供了性能优化和日常维护的实用技巧,帮助用户高效管理Oracle数据库环境。

weixin_33462927的博客 270

Oracle性能优化11g)

oracle性能优化思路分析

DoraMike的博客 6038

Oracle 11g 性能优化与SQL调优深入实践

本文还有配套的精品资源,点击获取 简介:本章视频教程深入分析了Oracle 11g数据库性能调优与SQL优化的核心概念,覆盖性能顾问使用、表连接优化、常规SQL语句优化、索引管理、重演策略以及查询优化器的应用。教程为数据库管理员和开发人员提供关键知识,帮助提升数据库性能并应对复杂查询和大数据挑战。 1. Oracle性能顾问使用 Oracle数据库作为企业级...

weixin_32673065的博客 1166

实践!Oracle 11g 数据库级别最佳参数优化

Oracle 11g 安装后的参数调整

huanhuanzhou blog 1014

Oracle11g系统调优

先回忆下Oracle 11g的服务器结构: 1、调整日志缓存区 1.1、查看日志缓冲区大小(单位:字节) show parameter log_buffer; 1.2、判断是否需要调整重做日志缓存大小 set serveroutput on; --在服务器端输出结果 declare v_waitTimes int; --用户进程等待redo_log缓存次数...

小灯数据 1732

ORACLE 11G 性能诊断优化之ASH实战分析详解

ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成。v$active_session_history视图提供了在实例级别抽取会话活动信息。活动会话每分钟会被抽样一次且被存储在sga中的循环缓冲区中.任何被连接到数据库且正等待一个不属于空闲等待事件的会话会被考虑是一个活动的会话。

alisande1的专栏 2922

oracle11g自带优化吗,windowsOracle11g的优化教程

通常需要设置的参数:● DB_BLOCK_BUFFERS该参数决定了数据库缓冲区的大小,这部分内存的作用主要是在内存中缓存从数据库中读取的数据块,数据库缓冲区越大,为用户已经在内存里的共享数据提供的内存就越大,这样可以减少所需要的磁盘物理读写次数。在Oracle 9i以前版本数据库中,缓冲是由db_block_buffers*db_block_size来决定,db_block_sizBe参数是在...

weixin_33488806的博客 386

Windows环境Oracle 11g部署实战:从系统准备到安装后优化全解析

数据库部署是IT基础设施构建的核心环节,其关键在于理解软件与操作系统的深度集成原理。Oracle数据库作为经典的关系型数据库管理系统,其安装过程涉及系统资源规划、服务配置与网络通信等多层技术交互,直接影响后续的数据管理效率与系统稳定性。在工程实践中,针对特定版本如Oracle 11g在Windows Server或专业版Windows 10/11上的部署,常需应对**遗留系统兼容性**与**环境预配置**等挑战。掌握规范的安装流程与参数优化,不仅能满足老旧业务系统的运行需求,更能为开发测试提供可靠的沙盒环境

weixin_30702441的博客 308

企业级Oracle11G安装实战:从下载到部署全流程

对于需要部署的数据库管理界面,一键部署功能省去了繁琐的环境配置过程,真正做到了开箱即用。最近公司有个新项目需要搭建Oracle11G数据库环境,作为团队里负责基础设施的成员,我完整走了一遍从下载到部署的全流程。整个安装过程虽然步骤不少,但只要按部就班操作,遇到问题及时查阅文档,基本上都能顺利完成。对于企业环境,建议先在测试机演练几次,熟悉流程后再在生产环境部署。总的来说,Oracle11G的安装部署是个系统工程,需要耐心和细心。32位系统只能安装32位Oracle,64位系统则可以安装任意版本。

MoonbeamRaven28的博客 357

【亲测免费】 Oracle11g客户端精简版:高效便捷的数据库管理工具

Oracle11g客户端精简版:高效便捷的数据库管理工具 【下载地址】Oracle11g客户端精简版下载 Oracle11g客户端精简版下载 项目地址: https://gitcode.com/open-source-toolki...

gitblog_09780的博客 489

服务器安装oracle 11g失败

环境:window server 2012 r2 安装包:oracle 11g 解决方法:控制面板->系统和安全->管理工具->系统配置引导->高级选项->处理器个数->改为16

qq_42091640的博客 477

Oracle GoldenGate 11.2.1.0.3 for Oracle 11G Windows x64版本下载:数据库同步的强大工具

Oracle GoldenGate 11.2.1.0.3 for Oracle 11G Windows x64版本下载:数据库同步的强大工具 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 Oracle GoldenGate 11.2.1.0.3 for Oracle 11G Windows x64版本下载是一个专门为Oracle 11G数据库设计的同步解决方案。此版本...

gitblog_06758的博客 586

CentOS6u9 Oracle11g 内存策略选择和大页内存优化

简单说明: Oracle 内存管理模式: AMM(Automatic Memory Management) 该模式对Oracle使用的总内存(SGA+PGA)进行统一自动管理 该模式是完全托管模式,当库不重要或缺少专门的维护DBA的时候可以使用 该模式与HugePage大页内存优化冲突 ASMM(Automatic Shared Memory Management) 该模式是...

VincentQB的博客 1776

【参数优化11gR2安装后参数优化

以下为11gR2安装完成后需要优化的参数。 前序文章:1.【安装】CentOS7.7下图形化安装Oracle11gR2,2.【补丁】Oracle11gR2补丁更新(PSU) 一、参数优化 #如果指定为TRUE, 并行操作只会在当前instance里面并行,而不会垮多节点 alter system set parallel_force_local=true scope=spfile; #这两个参数用于关闭RAC的DRM(dynamic remastering)特性,避免频繁的DRM使系统性能

数据库学习笔记 917

给大家一些oracle性能优化的建议(转)

首先要先强调两个原则。   原则一:注意WHERE子句中的连接顺序。 Oracle采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。 尤其是“主键ID=?”这样的条件。   原则二: SELECT子句中避免使用 ‘ * ‘ ORACLE在解析的过程中, 会将‘*’ 依次转...

zwt2001267的专栏 219

Oracle 11g数据库安装完成后参数优化(建议收藏)

Oracle 11gR2版本数据库安装完成后,一定要进行的参数优化(建议收藏)

一杯温酒慰风尘,一段代码为爱好 753

Oracle 11g参数调优(建议)

alter system set result_cache_max_size=0 scope=spfile sid='*';alter system set standby_file_management='AUTO' scope=spfile sid='*';alter system set archive_lag_target=1800 scope=spfile sid='*';alter system set control_file_record_keep_time=30 scope=spfile

一杯温酒慰风尘,一段代码为爱好 1550

oracle11g 数据库可用内存使用和分配

select machine,count(*) from v$session group by machine; select machine,status,count(*) from v$session group by machine,status order by status; select 'SGA' AS NAME,ROUND(sum(value)/1024/102

goodyuedandan的博客 1万+
上一篇: 风机风向玫瑰图原理!
下一篇: jquery的each()详细介绍
水深千尺
博客等级 码龄18年 5粉丝 94原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值