Oracle9i 应用系统优化[zt]

Oracle9i 应用系统优化[@more@]

Oracle9i 应用系统优化

1、优化前提

应用系统方案制定准确,对应用系统运行环境分析合理、正确,在数据库服务器性能、存储空间、网络带宽等方面的配置能够达到系统运行要求。

2、优化目标

l 响应时间与吞吐量平衡

l 临界资源

2.1 响应时间与吞吐量平衡

根据应用类型的不同,性能优化的目标不同:

在线事务处理系统OLTP)把吞吐量定义为性能指标;

决策支持系统(DSS)把响应时间定义为性能指标。

响应时间

响应时间=服务时间+等待时间

系统吞吐量

系统吞吐量指在给定的时间内所完成的工作量。有以下两种技术:

l 以相同的资源来完成更多的工作(减少服务时间);

l 通过减少整个响应时间来更快完成工作。

等待时间

当竞争增强的时候,某个任务的服务时间也许保持不变,但它的等待时间将增长。

我们开发的系统一般为OLTPDSS的复合系统,侧重于OLTP,在硬件允许的情况下最好能够将运行数据库、分析数据库分离。

2.2 临界资源

诸如 CPU、内存、I/O容量、网络带宽等资源,都是减少时间的关键因素。性能好坏取决于以下因素:

l 可用资源的数量

l 需要该资源的客户方的数目

l 客户方等待资源所消耗的时间

l 客户保持资源的时间长短

随着请求单元的增加,服务时间也增加。为了处理这种情形,用户可以选择:

l 通过限制请求的速率,从而维护可接受响应时间

l 还可通过增加资源数目,如CPU和硬盘(增加资源的前提是应用系统设计良好,并且已经做了充分的优化)

3、优化阶段

从实际做的项目过程来看,除了系统安装优化外,系统优化往往都是在系统实施、运行时才考虑,其实到这阶段做系统优化的局限性比较大,因为系统架构设计都成型、固化,大幅度调整设计的代价非常昂贵,一般只能在局部领域做优化,只能通过重新分配内存或优化I/O来或多或少地提高性能,实际上优化应该贯穿系统设计、开发、安装、测试、运行整个过程。

3.1 设计阶段

为了达到最佳的效果,优化工作应当从设计阶段进行,而不是在系统实施后进行。

在数据库设计阶段,个人认为需要注意如下几个方面:

l 业务对象不能建立在系统表空间;

l 索引表空间和业务表空间分开;

l LOB类型的字段与其它的类型分开;

l 根据应用系统功能确定是否要采用冗余字段;

l 正确的主键字段的选择,建议采用数字,不推荐使用复合主键;

3.2 开发、测试阶段

在开发实现阶段,个人认为需要注意如下几个方面:

l 执行sql使用变量绑定的方式,尽可能的保留在共享内存中,提高sql命中率;

l 多表关联查询时采用有效的连接顺序;

l 尽可能的降低客户端和服务器的网络数据交互,某个业务功能点需要频繁和数据库交互的,建议采用存储过程、临时表实现;

l 根据查询条件建立必要的索引,查询条件中使用oracle函数建立相对应的函数索引,数据值范围较小的采用位图索引

l 多张表关联查询时,有时可采用先查询符合条件对应的表中关键字,然后通过关键字再查询对应表中相关信息;

l 频繁访问,较少更新的数据量较小的表信息可采用缓存的方式;

l 在实现批量更新、插入时,要采用jdbc批量执行方法,并且调整对应的fetchsize参数。

在测试阶段,应该模拟实际运行环境,测试出相关性能较差的功能点。

因为在设计、开发阶段往往因为并发用户少、数据量小,很多性能问题显现不出来,如果软件测试充分,很多性能问题都可以显现出来,现在有很多优秀的软件测试工具,如LoadRunnerRobert在做压力测试方面都比较方便、优秀。

尽量将系统因程序设计、编码不当导致的性能问题暴露在测试阶段。

3.3 安装阶段

一般在安装生产数据库时,我们根据系统最早的规划,集合软、硬件环境,需要调整操作系统以及数据库参数,

3.3.1操作系统交换区

交换区是Oracle的一项基本的要求。可以根据Oracle的发行要求来确定。一般交换区大小的要求是该服务器内存的2倍至4倍之间,建议是内存的4

3.3.2操作系统内核参数

shmmax

共享内存段,建议设大点, 达到最大SGA

shmmin

最小的共享内存段.

shmmni

共享内存标志符的数量.

shmseg

一个进程可分配的最大内存段数.

shmall

最大可允许的内存数,比SGA还要大.

semmns

信号量,跟ORACLEPROCESS数有关.

semmsl

一个信号量中最大的信号量数.

3.3.3 oracle 文件设置

当服务器平台已完成操作系统的安装后,就应该开始认真的考虑下面的问题:

l 是否采用裸设备

实际应用的生产系统基本都是采用裸设备,使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。

l 安装点的考虑

Oracle的安装点就是指数据文件、日志文件和控制文件的安置路径,为了使系统在以后运行性能达到优化,建议将数据文件、日志文件和控制文件的安置路径与数据库系统存放在不同的路径上。最好将数据文件、日志文件和控制文件分别存放在不同的路径。

l SYSTEM表空间对应数据文件

在自定义安装会话中,建议你根据需要设置system表空间所对应的数据文件的大小。一般要设置比默认值的2倍。该数据文件的大小最好是在300MB500MB间。因为数据文件太小不利于系统的运行。

l 临时表空间对应的数据文件

临时表空间对应的数据文件可以根据将来系统存放的应用的处理情况来定。比如系统将来可能要经常进程排序处理,则需要设置较大的临时表空间,也可能需要再建立新的临时表空间。这里建议临时表空间的数据文件在100MB300MB左右。

l 回滚段表空间对应的数据文件

9i回滚表空间都是系统管理,初始值也是根据系统事务量预估计的值,实际到运行阶段如果系统常出现ora-01555错误的时候,可能就需要增加回滚表空间的大小。

l 日志文件的大小

日志文件的大小对于Oracle系统的运行也是相当重要。默认值是太小。实际根据事务繁忙预估计日志大小,没有固定的具体值范围,建议重做日志切换时间不能过短也不能过长,一般在2040分钟左右。该参数可以在系统运行期间根据数据库系统日志切换时间重新调整,控制文件的大小。

l 数据库块的大小

如果你的应用系统是OLTP的话,可以采用较小的数据库块。如果是DSS类型的应用系统,则可以设置较大的数据库块,目前Oracle产品所允许的数据库块可以是2KB64KB之间。无论你选择较大的块或较小的块,它的值都必须是2的整数倍,比如2048,4096,8192等。但需要注意的是,如果操作系统为64位,则可选择较大的块。

l 字符集的选择

字符集是Oracle系统专门支持的一项技术。详细请参考另外的章节。一般不要与另外的已经存放的Oracle系统的字符集产生冲突即可。但如果你的环境是一个新的平台,不需要与其它平台进行数据交换的话,建议选择默认的字符集。这样可以利于将来的修改。

3.3.4数据库启动参数

sga_max_size

例程存活期间所占用的系统全局区的最大大小,一般为物理内存的1/2-1/3

shared_pool_size

指定共享池的大小,共享池包含:共享游标、存储的过程、控制结构和并行执行消息缓冲区等对象,较大的值用于改善多用户系统的性能,该参数调整不能过大,会增加管理负担和latch 的开销,一般是在200M-500M左右

db_cache_size

该参数指定数据缓冲区的大小,原则上时越大越好,取代了8i中的db_block_size * db_block_buffers

log_buffer

重做日志缓冲区大小,该参数设置大没有意义,
Oracle
推荐log_buffer最大为cpu_count乘以128KB512KB中最大值

processes

系统用户进程的最大数量,该参数设置为系统最繁忙时估计并发用户数

large_pool_size

如果不设置MTS,通常在 RMAN OPQ 会使用到,但是在10M --50M应该差不多了。可以考虑为 session * (sort_area_size + 2M)

Java_pool_size

它用于存放java代码,若不使用java,建议设置为30M

pga_aggregate_target

程序全局区大小,
1.
对于OLTP系统PGA_AGGREGATE_TARGET = * 80% * 20%
2.
对于DSS系统PGA_AGGREGATE_TARGET = * 80% * 50%

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/202861/viewspace-983053/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle Hint的用法
user_pic_default.png
请登录后发表评论 登录
全部评论
<%=items[i].createtime%>

<%=items[i].content%>

<%if(items[i].items.items.length) { %>
<%for(var j=0;j
<%=items[i].items.items[j].createtime%> 回复

<%=items[i].items.items[j].username%>   回复   <%=items[i].items.items[j].tousername%><%=items[i].items.items[j].content%>

<%}%> <%if(items[i].items.total > 5) { %>
还有<%=items[i].items.total-5%>条评论 ) data-count=1 data-flag=true>点击查看
<%}%>
<%}%> <%}%>

转载于:http://blog.itpub.net/202861/viewspace-983053/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值