版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DB2性能调节工作总结近期负责了Metric项目的服务器性能维护,对DB2的性能调节做了些研究。整体感觉数据库调优的关键点应该还是在建库阶段,好的查询更能得到更好的性能。而后期对数据库参数等的调节结果并不是非常明显的。网上数据库调节方面的资料也很多,但大多数都是转来转去的,在此只做下我个人的工作总结;(表示对上诉解释#表示对下面解释)#1,Monitoring#db2getdatabasemanagermonitorswitches显示监视开关的情况db2updatedbmcfgusingDFT_MON_BUFPOOLONDFT_MON_LOCKONdb2updatedbmcfgusingDF
2、T_MON_SORTONDFT_MON_STMTONdb2updatedbmcfgusingDFT_MON_TABLEONDFT_MON_UOSONdb2terminatedb2stopdb2start在实例级打开监视开关,这样随着实例的重启,开关生效db2getdatabasemanagermonitorswitchesdb2getmonitorswitches发现实例级和下面的数据库监视开关都打开了db2deacivatedatabasetp1db2activatedatabasetp1重新激活数据库,刷新监视数据selectagent_id,rows_read,rows_written,
3、rows_selected,rows_insertedfromsysibmadm.snapappl监视每个代理读写查询的情况,如果read的数量远高于select的数量,考虑是不是缺少索引在我的工作中,很少遇到写多的情况,所以对这方面也没深入db2getsnapshotfortablesontp1>sntab1.txt接下来监视tp1数据库下所有表的读写啦# #下一步,就是抓到那个有大量读大于写的表,然后提取该表上的查询SQL# #这里就要考虑两种情况了,是静态的还是动态的# #静态的,从包里提取db2bfd-ssqltp1st.bnd# #动态的,可以用snapshotSQLSTATE
4、MENT抓取,这里不写了然后就要提取由我们关注的大量读的查询SQL我不太喜欢这部,累眼睛,还烦琐!如果有大量查询SQL,还需要想办法自己找生db2describeindexesfortableacctshowdetail然后就是从提由的SQL中找到表,从表中看有没有索引,没有的话,新建# #之后呢,就可以从访问计划中看索引有没有生效# #静态SQL可以用db2expln从包里弄,本人比较喜欢db2exfmt,因为动静SQL都可以弄# #后面有db2exfmt关于动静的例子,我比较习惯把SQLstatement拿由来# #然后放进文本里,db2expln-dGTSSTGMS-fSQL.txt-g
5、-z;# oGTSSTGMS_sort.txt# #或者,db2connecttotp1# #db2setcurrentexplainmodeexplain#db2setcurrentexplainsnapshotexplain#db2selectname,addressfromacctwhere#db2exfmt-l-dtp1-oextp2.txt=>viextp2.txt#2,TalespaceandI/OPerformance#db2selectbpname,bufferpoolid,npages,pagesizefromsyscat.bufferpools查看数据库的缓冲池,sy
6、scat.bufferpools中的bufferpoolid字段和sysibmadm.snapdb_memory_pool的pool_secondary_id是关联的,从后一张表中记载着用户用户间的缓冲池和系统自建的缓冲池/CURRENT_SIZE当前大小;POOL_CONFIG_SIZE设置大小;HIGH_WATERMARK最高记录;我发现,这和使用db2Pd-dbGTSSTGMS-mempools是对应的PhySzPhyUpBndPhyHWM/使用db2pd-dbGTSSTGMS-memset,将同类内存集合并计算在这里插一段缓冲池自调节功能介绍下面我们创建示例缓冲池MYBP1,其使用自调
7、整功能(注意其createbufferpool语句使用了automatic),初始大小为400K,具体如清单4所示:创建使用自动自调整功能的示例缓冲池MYBP1db2createbufferpoolmybp1immediatesize100automaticpagesize4kdb2selectBPNAME,NPAGESfromsysibm.sysbufferpools当缓冲池启用了自调整功能时,该特定缓冲池的sysibm.sysbufferpools表中的NPAGES字段将设置为-2。当自调整功能处于禁用状态时,NPAGES字段将设置为缓冲池的当前大小。db2alterbufferpoolm
8、ybp2immediatesize100automatic表空间在读大数据的时候,给表空间指定缓冲区是没有用的。这种情况下,DB2会利用直接I/O去接触大数据。db2createbufferpoolBP8Ksize1000pagesize8kdb2createsystemtemporarytablespaceTMP8Kpagesize8kmanagedbysystemusing(TMP8K)EXTENTSIZE8PREFETCHSIZE8bufferpoolBP8K#接下来呢,当然是看命中率了当然可以用db2getsnapshotfordatabaseontp1#这里介绍另外一个方法selec
9、tdata_physical_reads,index_physical_reads,total_physical_reads,bp_namefromsysibmadm.bp_hitratiowherebp_namenotlikeIBMSYSTEM%selectdata_logical_reads,index_logical_reads,total_logical_reads,bp_namefromsysibmadm.bp_hitratiowherebp_namenotlikeIBMSYSTEM%selectdata_hit_ratio_percent,index_hit_ratio_perce
10、nt,total_hit_ratio_percent,bp_namefromsysibmadm.bp_hitratiowherebp_namenotlikeIBMSYSTEM%上面这样可以检测每一个缓冲器的命中率情况#接下来,看一下缓冲器的读写情况selectsubstr(bp_name,1,15)asbp_name,total_physical_reads,average_read_time_msfromsysibmadm.bp_read_iowherebp_namenotlikeIBMSYSTEM%selectsubstr(bp_name,1,15)asbp_name,total_writ
11、e,average_write_time_msfromsysibmadm.bp_write_iowherebp_namenotlikeIBMSYSTEM%那个bufferpool比较忙,用于那个表空间,该表空间有哪些表,检查。#下面检查表空间selectpool_data_p_readsasTotal_Data_Reads,Pool_async_data_readsasAsynch_Data_Reads,pool_async_read_timefromsysibmadm.snapbpwherebp_name=旧MDEFAULTBPselectpool_async_data_read_reqsa
12、sData_Prefetch_Requests,decimal(POOL_ASYNC_DATA_READS)/decimal(POOL_ASYNC_DATA_READ_REQS)asData_Page_Per_Prefetch,pages_from_block_iosfromsysibmadm.snapbpwherebp_name=旧MDEFAULTBP#其中DATA_PAGES_PER_PREFETCH要match上extentsize,为了得到Iextentsize,#(最好打开AutomaticPrefetchsize,这样自动计算数值NUMofContainers*ExtentSize
13、)使用db2getsnapshotfortablespaceontp1#最好将IOSERVERS和IOCLEANERS设为自动db2getdbcfgshowdetail|grepNUM_IONUM_IOSERVERSAUTOMATIC?NUM_IOCLEANERSAUTOMATIC?#3,MemoryManagement#当然是要看内存当前使用了db2deactivatedbtp1db2activatedbtp1db2mtrk-d-vdb2pd-dbtp1-mempoolsdb2pd-dbtp1-memsets这里就不多说了,好多我也不明白,明白的具体情况具体分析#4,MemoryManage
14、ment#db2getsnapshotfordatabaseontp1|grep-isort需要看一下totalsorts和SortOverflows的情况如果sortheap不够用的话,会用临时表空间可以snapshot一下这个临时表空间特另U注意Bufferpooltemprorarydatalogicalreads和Bufferpooltemporarydataphysicalreads/Bufferpooldatawrites,Asynchronouspooldatapagewrites#接下来就要估一下sortheap是否够用db2expln-dtp1-fsortquery.sql-
15、g-z;-oexpsort.txt#这里主要看Rows*RowWidth和sortheap大小#5,Accessplan(Optimizerplan)#MonitorStaticSQLcd$HOME/sqllib/bindb2bindsqltplst.bndexplainyesexplsnapyesdb2exfmt-l-dtp1-nSQLTP1ST-#/-oexptp1.txtsortheapsize*4K(PAGE)和numrows*rowwidth(BYTE)比较大/卜,来决定sortheapsizePCTFREE&FREEPAGE=>1)只读表,如果对于一个表没有任务更新活动,那么可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉首大学《软件测试与质量》2021-2022学年期末试卷
- 吉林艺术学院《数字音频创作》2021-2022学年第一学期期末试卷
- 吉林艺术学院《电影短片实务》2021-2022学年期末试卷
- 佣人合作协议书范文范本
- 吉林师范大学《学前教育专业创业指导》2021-2022学年第一学期期末试卷
- 2024年大批量租房合同范本
- 2022年公务员多省联考《申论》真题(河北县级卷)及答案解析
- 全省小学美术教师赛课一等奖人美版美术二年级下册《艺术作品中的动物》课件
- 吉林师范大学《史学史》2021-2022学年第一学期期末试卷
- 特殊形状包装盒采购合同
- 浙教版劳动教育六年级上册项目三 任务一《班级生活共观察》教学课件
- 小学信息技术-声控的秘密教学设计学情分析教材分析课后反思
- 课程名称耳应用解剖学
- 安徽高中会考:《通用技术》2023年考试真题与答案解析
- 搜狐网站架构介绍
- 压路机操作工考试题初级
- 医院志愿者培训课件
- 幼儿园中班健康《不一样的气味》PPT
- 老年综合评估 课件
- 放疗肿瘤内科临床诊疗指南与技术操作规范
- 小学道法6 让我们的学校更美好1课件
评论
0/150
提交评论