您当前的位置: 首页 > 数据库教程 > 如何调整DB2数据库性能实用技巧分享(3)

如何调整DB2数据库性能实用技巧分享(3)

作者:不详 来源:网络 发布时间: 2010-05-10 18:47 点击:
db2getsnapshotfordatabaseonDBNAME 查看: Locksheldcurrently=0 Lockwaits=0 Timedatabasewaitedonlocks(ms)=0 Locklistmemoryinuse(Bytes)=576 Deadlocksdetected=0 Lockescalations=0 Exclusivelockescalations

如何调整DB2数据库性能实用技巧分享(3)


  
  db2"getsnapshotfordatabaseonDBNAME"
  
  查看:
  
  Locksheldcurrently=0
  
  Lockwaits=0
  
  Timedatabasewaitedonlocks(ms)=0
  
  Locklistmemoryinuse(Bytes)=576
  
  Deadlocksdetected=0
  
  Lockescalations=0
  
  Exclusivelockescalations=0
  
  Agentscurrentlywaitingonlocks=0
  
  LockTimeouts=0
  
  假如locklist的内存量(bytes)超过LOCKLIST的50%,那么需要增加LOCKLIST的量,LOCKLIST是按4k计算。
  
  8.MaximumOpenFiles
  
  最大的打开文件数目
  
  DB2限制同时打开的文件数目,数据库参数"MAXFILOP"限定了并发打开的文件数目。如达到这个数目,DB2就会开始关闭和打开Tablespace文件,包括rawdevice,这样会降低SQL反映时间和占用CPU。
  
  使用命令来查看是否有文件关闭情况:
  
  db2"getsnapshotfordatabaseonDBNAME"
  
  看看其中的"Databasefilesclosed=0"
  
  如果值不是零,就需要修改MAXFILOP,
  
  db2"updatedbcfgforDBNAMEusingMAXFILOPN"
  
  9.Agents
  
  需要保证有足够的agent应付系统负载。
  
  命令:db2"getsnapshotfordatabasemanager"
  
  此时需要观察“Agentswaitingforatoken”或者“Agentsstolenfromanotherapplication”,假如有值,就需要增加DBmanager的agent值,也就是修改MAXAGENTS和/或者MAX_COORDAGENTS的值。
  
  Highwatermarkforagentsregistered=7
  
  Highwatermarkforagentswaitingforatoken=0
  
  Agentsregistered=7
  
  Agentswaitingforatoken=0
  
  Idleagents=5
  
  Agentsassignedfrompool=158
  
  AgentscreatedfromemptyPool=7
  
  Agentsstolenfromanotherapplication=0
  
  Highwatermarkforcoordinatingagents=7
  
  Maxagentsoverflow=0
  
  10.MonitorSwitches
  
  打开MonitorSwitch后才可以获得性能方面的信息,详细命令如下:
  
  db2"updatemonitorswitchesusinglockONsortONbufferpoolONuowONtableONstatementON"
  
  查看执行计划:
  
  db2expln:
  
  db2expln-ddbname-cpkgOwner-ppkgNmae-oexpln.out
  
  dynexpln:
  
  dynexpln-deos-q"select*fromeosmenu"-g-t
  
  dynexpln-deos-fquery.sql-oout.txt
  
  更新统计信息:
  
  runstats:
  
  db2runstatsontablesongxn.eosmenuandindexssongxn.ix1,songxn.ix2allowreadaccess
  
  db2runstatsontablesongxn.eosmenuwithdistributionanddetailedindexall
  
  调整优化等级:
  
  (0,1,2,3,5,7,9):
  
  更改DFT_QUERYOPT(dbcfg),默认为5
  
  SQL:setcurrentqueryoptimization=3
  
  索引:
  
  建立索引:
  
  createuniqueindexind1onvicky.staff(dept,lastname)
  
  createuniqueindexind2onvicky.emplyee(empno)include(lastname,salary)
  
  include中的字段不列入排序范围
  
  丛集索引:
  
  记录与索引的顺序一致
  
  cretaeindexind3onvicky.staff(dept)CLUSTER
  
  SCANMODE:
  
  IndexScan,FullIndexScan(IndexonlyAccess),RelationScan
  
  查询索引:
  
  selectindnamefromsyscat.indexeswheretabname=’customer’
  
  索引建议器:
  
  db2advis-ddbname-iquery.sql|-s"sqlstmt"-oadvis.out
  
  在数据页中预留空间:
  
  altertablevicky.staffPCTFREE30(预留30%)
  
  loadfromstaff.ixfofixfmodifiedbypagefreespace=30replaceintovicky.staff
  
  缓冲池与IO
  
  默认为IBMDEFAULTBP
  
  新建缓冲池:
  
  db2createbufferpoolbpnamesize1000pagesize4k
  
  altertablespacetbnamebufferpoolbpname
  
  当脏页超过CHNGPGS_THRESH(%,dbcfg)时,缓冲池将被清空并写回
  
  延展缓冲池:
  
  ESTORE_SEG_SZ&NUM_ESTORE_SEGS(dbcfg)
  
  db2alterbufferpoolibmdefaultbp[not]extendedstorage
  
  I/OSERVER:
  
  NUM_IOSERVERS(dbcfg):一般为磁盘数+2
  
  数据重整:
  
  REORGCHK:
  
  db2reorgchkupdatestatisticsontableall该语句也用来对所有表做RUNSTATS
  
  db2reorgchkcurrentstatisticsontablevicky.staff
  
  tablestatistics:
  
  CARD:记录笔数
  
  OV(ERFLOW):overflow的记录数
  
  NP(AGES):含有记录的页数
  
  FP(AGES):表格占用的总页数
分享到:
本文"如何调整DB2数据库性能实用技巧分享(3)"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4