informix数据库性能调整

上传人:xiao****1972 文档编号:84978491 上传时间:2019-03-06 格式:DOCX 页数:5 大小:19.17KB
返回 下载 相关 举报
informix数据库性能调整_第1页
第1页 / 共5页
informix数据库性能调整_第2页
第2页 / 共5页
informix数据库性能调整_第3页
第3页 / 共5页
informix数据库性能调整_第4页
第4页 / 共5页
informix数据库性能调整_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《informix数据库性能调整》由会员分享,可在线阅读,更多相关《informix数据库性能调整(5页珍藏版)》请在金锄头文库上搜索。

1、Informix数据库性能调整数据库性能调整原则数据库性能调整是数据库应用中的重要问题,它可以使数据库系统运行在最佳状态。进行性能调整时,应认真观察系统中所有的环节,选择合适的工具来监控系统和采集数据,同时应遵循一些原则。其中应观察的环节包括:监控对性能有很大影响的系统资源的使用状况;确定影响这些资源的数据库活动;监控数据库系统的用户活动。性能调整应遵守以下原则:考虑全局,修改局部进行数据库性能调整时需要排除无关因素的干扰,找到关键问题。例如:系统管理员在做调整时往往会先看一下硬件系统的统计数据,如CPU利用率、I/O活动状况和页化(paging),初试者往往会被某个数据所迷惑(如高频度的磁盘

2、活动) 而决定通过提高硬件的性能来解决问题,如添置新设备。实际上高频度的磁盘活动有可能是由于对数据采用了不正确扫描方式或数据库系统额外的开销造成的,此时通过建立索引或调整数据库系统本身就有可能解决这个问题,其费用远远小于购买硬件。消除瓶颈在计算机系统中,处理不当就极易产生瓶颈效应,严重影响系统的性能,因此消除瓶颈是性能调整的一个重要内容。瓶颈现象可以用交通堵塞来类比。交通堵塞通常是由于大部分车辆必需通过一狭窄的道路或多股车道的车辆合并到一股车道,瓶颈效应也是类似,要根据不同的原因来选择不同的方法。对于第一种原因,可以采取提高部分环节性能的方法来解决;而对于后一种则要采取分割的方法,即把负载分给

3、多个环节,以减轻某个环节的负担。分割分为空间、资源和时间三种方式。但要注意,分割并不一定提高性能。总的来讲,消除瓶颈的方法有:平衡系统资源上的负载;调整数据库服务器的配置;调整用户的数据配置;调整OLTP查询和DSS查询所需资源的分配。调整客户心态进行数据库性能调整时应首先把客户的心态调整到一个合理的程度。因为在系统性能很差时,客户非常希望通过专业人员所作的性能调整迅速提高现有系统性能,对性能调整抱有很大希望且心情急切,所以有必要对客户解释清楚调整的目的及其效果。首先要给客户提出的有关性能方面的问题进行排队,确定哪些问题急需解决,将主要精力放在哪个部分等。此外,客户往往只看到问题的表面,而调整

4、者则不仅要听客户的描述,还要自己亲自查看系统,找到问题的真实原因。所以,性能调优的步骤应该是采集数据、分析数据、制定调整计划、实施计划、评估调整后的性能。请注意:以上步骤应是一个循环,即分析调整,再分析再调整,往复多次。性能调整的方法多种多样,因系统和人而异,但大多数采取自顶向下或自底向上的方法,也有采用自里向外方法的。无论采用哪种方法,最终的目的是找出问题根源。另外,由于现有的系统中,各种因素间均有联系,因此必须具备清醒的思路,明确的目标,这样才可能从复杂的环境中找到真正影响性能的原因。Informix数据库的性能调整循序渐进的调整方法一般情况下,若客户感到数据库系统的响应时间较长时,就会轻

5、易地说系统性能有问题。的确,数据库系统的响应时间是用来判断系统性能好坏的一个最直接的标准,响应时间实际是多个环节时间开销的总和。从下面的公式可以看出,响应时间的长短受制于整个系统的各个环节,如网络质量、CPU效率、磁盘的速度及内存的大小。此外,处于不同角色的用户所感受到的响应时间的长短也不同。最不幸的是,最终用户所观察到的响应时间是最长的(如下图)。响应时间=网络传输时间+主机CPU消耗时间+磁盘I/O时间+内存页化消耗时间0261400.JPG;图1Informix推荐一种循序渐进的方法进行数据库系统性能优化。若通过这种方法还未能提高系统性能,则一般情况下是由于缺乏硬件资源或是客户的应用程序

6、代码的效率低下造成的。优化步骤如下 (其中从第二步到第十一步应根据需要反复执行):1.确定客户性能调整的目标;2.使用一些常用的系统监控工具,观察系统资源的利用率和数据库系统活动的频繁程度;3.确定性能问题的现象,如CPU、内存和磁盘不合理的使用;4.帮助客户的系统管理员调整操作系统的参数;5.每次只调整一个Informix数据库系统的参数;6.优化Informix数据库系统的磁盘空间配置,如dbspace在磁盘系统上的分布;7.优化库表的物理存放位置和表空间分配方式,如extent的增长方式;8.优化INDEX,增加必要的INDEX,删除无需的INDEX,减少INDEX在I/O上的开销;9.

7、优化后台的I/O活动,包括日志、checkpoints和页刷新I/O活动在内;10.在业务低峰期,将一些操作改成批处理作业和调整备份计划;11.优化数据库系统的应用。参数设置正确的数据库系统参数为数据库系统正常运行提供一个良好的环境,有助于系统性能的提高。Informix数据库的某些参数与性能有着直接的关系,如下面介绍的几个参数,因此客户须正确设定这些参数,尤其是要注意参数大小的设定因系统和环境的不同而不同。BUFFERS:确定数据库系统可以使用的数据缓冲区,在OLTP环境中,它直接影响数据操作的速度;LOCKS: 确定系统可用的锁量,设置到1000*用户数;PHYBUFF: 设置到每个I/O

8、的页数应达到缓冲的75%;LOGBUFF: 设置到每个I/O的页数应达到缓冲的75%;CLEANERS:确定数据页刷新线程个数,影响数据从内存写到磁盘的速度;LRUS:用于管理数据缓冲中数据页的使用方式,影响数据在内存中的命中率;LRU_MAX_DIRTY和LRU_MIN_DIRTY:控制LRU队列的刷新速度,有助于提高checkpoint的效率,降低checkpoint的持续时间;CKPTINTVL:设置为9999,使得checkpoint的发生频度由物理日志来控制;SHVMVIRTSIZE:设置虚拟部分的大小,一般应是每个虚拟部分空间大一些,个数少一些READ_AHEAD:控制数据读取的方

9、式,有利于提高数据顺序扫描的效率;RA_THRESHOLD:提前读的阈值,控制下一次读数据的方式。索引策略数据库系统中的索引策略对性能也有较大的影响。Informix数据库支持唯一型索引、重复型索引、复合型索引和聚簇型索引四种类型。其中聚簇型索引最适用于静态表,效率很高。在其余三种索引类型中,唯一型索引的效率最高,复合型索引可以提高含有大量数据重复的查询速度,重复型索引的效率最低。在Informix数据库系统中,建立索引应遵循以下规则:在需要的字段上建立索引,如连接列、经常作为过滤器的列;索引的键值要尽可能的小;设定多个临时数据库空间。影响索引效率的因素有以下几个方面:索引构成方式。索引构成方

10、式包括:混合型索引(attached index)与分离型索引(detached index)。前者是索引与数据混存在一个数据空间中,这样会造成数据I/O与索引I/O的竞争;后者是索引单独存放在一个数据空间上,这样可以减少磁盘I/O的竞争。索引填充因子(FILLFACTOR)。这个参数用于控制在建立索引时,每个索引页的填充度。对于 静态表,该因子可设定为100;若某个表有很多的插入或更新的操作,则取值范围应在5070之 间,但不能低于50,否则整个索引树就变成了一个半空树,这样不仅浪费磁盘空间,而且也会降低索引的效率。建立索引虽然能在一定程度上提高数据的查询能力,但同时也会带来一些空间和时间上

11、的系统开销,以至这些开销大得足以影响数据库系统的性能。空间开销一目了然,时间开销主要是由于索引的更新是动态的,即每个数据插入操作(insert)和删除操作(delete)都需要对索引有一个读操作,数据修改操作(update)则需要对索引进行两个读操作,可见若数据库中索引量过多,就会引起系统大量I/O操作,性能反而大受影响。数据库系统维护数据库系统的维护对性能也有直接的影响。在Informix数据库中,有一些描述数据库系统的统计型数据需要数据库管理员进行维护,如描述表中所含的数据行数的NROWS、描述索引的层数LEVELS等。实际上这些数据的维护非常容易,只须数据库管理员定期执行一条简单的SQL

12、 命令UPDATE STATISTICS,即可更新数据库系统目录表中为优化器提供信息的字段。这些字段将为Informix优化器提供一些它所需的统计型的数据,若提供的数据精度较高,则会使优化器能够正确地认识表的规模、索引的结构及表中数据的重复度及数据分布状况,从而使优化器能选择一条开销最低的查询路径,以提高效率。OLTP系统重要环节目前,关系型数据库大多数用于OLTP环境。典型的OLTP环境是用户量大、交易量大且完成的操作简单(如数据插入、修改、删除),要求数据库有较快的响应速度。因此在OLTP环境下进行性能调整时,应把主要精力放在能够对系统性能有较大影响的环节上,比如:1.缓冲区的读写命中率。

13、在数据库系统中,读写操作都要在内存缓冲区中进行,所以缓冲区的读写命中率越高越好,以降低磁盘I/O开销。通常,缓冲区的读命中率应大于95%,缓冲区写命中率应大于85%。此外,LRU队列的刷新频度也会影响缓冲区的写命中率。若参数LRU_MAX_DIRTY和LRU_MIN_DIRTY设置过低,会因磁盘频繁刷新而造成写命中率降低。在共享内存的驻留部分中,含有两个物理日志缓冲和三个逻辑日志缓冲。较佳的缓存大小是当一个缓存达到75%时被刷新,而且平均每个I/O刷新页数应是缓冲大小的75%。若这个比率大于75%,则应增加缓冲大小;反之应减小缓冲大小。不要一味地调大缓存数,以免带来较多的内存页化问题,使系统性

14、能降低。另外,在OLTP中无需配置太多的虚拟内存部分(VIRTUAL PORTION),这样可以节省内存供给数据缓冲使用。2.CHECKPOINT。在checkpoint持续期间,全部用户的会话都会被暂时挂起,直至checkpoint结束,所以checkpoint的持续时间越短越好。在OLTP系统中,checkpoint持续时间对系统性能是很重要的。在checkpoint操作期间,共享内存缓冲区中被修改的页均要刷新到磁盘上。此时,系统将为每个chunk分配一个页清除线程,读取缓冲区头表并为响应的chunk定位修改的页,然后把写盘请求写到AIO或KIO的队列中。由此可见,checkpoint发生

15、时伴随大量的I/O操作,降低LRU_MAX_DIRTY和LRU_MIN_DIRTY这两个参数值会有助于checkpoint持续时间的缩短,但这样会增加正常操作期间I/O的开销。所以性能调整实际上是在系统中找一个动态平衡点,很难找到一个静态平衡点。此外,物理日志的大小也与checkpoint相关。物理日志的大小可以控制checkpoint的发生频度,而且比参数CKPTINTVL更有效。3.增加I/O吞吐量。增加系统的I/O吞吐量是十分重要的。可以通过对数据和索引的分布以达到消除I/O瓶颈、增加吞吐、优化系统性能的目的。这里要特别提出索引的问题。在表中,索引的数量应合适不要太多,如果查询只访问单行或行数较少时,应通过索引。在目前的OLTP环境中,事务处理过多依赖于索引,所以关键在于如何分散数据和索引,以求得到最有效的I/O。对于大表来说,可以尝试将其索引进行分段处理,这样可以因减少索引页扫描的数量而减少查询时间。但要注意,索引分段时只能按照表达式方式分段,因此会消耗CPU资源,增加开销。然而如果限制索引分段的数量,那么就能减少这种开销,使得系统达到I/O平衡。4.锁。在OLTP中,所需的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号