db缓冲池和索引调优的方法.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

DB2缓冲池和索引调优的方法

DB2性能问题的表现

应用系统(OA)上的表现:一般是登录、首页、待办列表等数据量比较大的模块,响应时间长,耗时数秒到数十秒都有可能。有时候是用户访问高峰期慢,下班时间又比较正常。

操作系统上的表现:一般是中间件服务器(WAS)系统正常,CPU和IO占用不会持续超过50%,系统运行进程不会有持续的等待。数据库服务器则非常繁忙,CPU占用持续在50%以上,往往会达到持续90%左右,IO占用可能不高。从系统层面判断,性能瓶颈出在数据库上。

调优的基本思路

DB2的性能和操作系统、锁、缓冲池、索引等参数,以及SQL的写法都有很大关系,受限于个人认识,这里主要介绍缓冲池和索引的调优方法。

缓冲池的调整比较简单,一般可以先调整缓冲池,若效果不明显,则再调整索引和SQL。

缓冲池调优

缓冲池是内存中的一块区域,DB2会将用到数据放到缓冲池中提高性能。缓冲池太小,每次查询仍然要到磁盘中操作,达不到缓冲的效果。缓冲池太大,超出操作系统管理的限制,会导致数据库无法连接的错误。

缓冲池是通过表空间与数据表发生联系的,数据表存放在指定的表空间中,每个表空间又有指定的缓冲池。因为每张数据表存储的数据量都不同,一般根据每条记录存放的最大数据量,我们会为数据表分别指定4k-32k不同的表空间来存放,以达到优化存储和性能的目的,缓冲池也是类似。这个一般在创建数据库时就会分配好了。

su–db2inst1连接到pzbdw数据库

su–db2inst1

连接到pzbdw数据库

db2connecttopzbdw

查看缓冲池定义

db2selectBPNAME,NPAGES,PAGESIZEfromsyscat.bufferpools

查看表空间的定义,包含表空间名称(TableSpaceName)、使用的缓冲池名称(BufferpoolName),表空间的页大小(TBSPageSize),缓冲池的数量(BufferpoolPages),缓冲池的页大小数据(BufferpoolSize)信息。

db2 select s.TBSPACE TableSpaceName,b.BPNAME BufferpoolName,s.PAGESIZE

TBSPageSize,b.NPAGESSYSCAT.BUFFERPOOLS

BufferpoolPages, b.PAGESIZE BufferpoolSizeb,SYSCAT.TABLESPACES s

fromwhere

s.BUFFERPOOLID=b.BUFFERPOOLID|more

查看mv_workitem表所在表空间和缓冲池信息,一般“MV_”开头的表使用的缓冲池是重点关注对象:

db2 select TABSCHEMATableSchemaName, TABNAME TableName, t.TBSPACETableSpaceName,b.BPNAME BufferpoolName, b.NPAGES BufferpoolPages, b.PAGESIZE

BufferpoolSize from

SYSCAT.TABLES

t ,SYSCAT.BUFFERPOOLS

b,SYSCAT.TABLESPACES s

where

tabname=MV_WORKITEM

and

s.BUFFERPOOLID=b.BUFFERPOOLID andt.TBSPACE=s.TBSPACE

开启缓冲池监控器:

db2updatemonitorswitchesusingbufferpoolon

在应用系统重现问题后,检查缓冲池的快照:

db2getsnapshotforbufferpoolsonpzbdw|grep-ibuffer|more

检查相关缓冲池快照,需要重点关注的data和index的逻辑/物理读写数据,一般来说,在缓冲池足够的情况下,physicalreads值趋近于0,而logicalreads值则很大。下面是红塔集团OA的32k缓冲池,在正常时的一个快照。

BufferpoolSnapshot

Bufferpoolname

=BF32

Bufferpooldatalogicalreads

=493907

Bufferpooldataphysicalreads

=78

Bufferpooltemporarydatalogicalreads

=129662

Bufferpooltemporarydataphysicalreads

=0

Bufferpooldatawri

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档