DB2数据库管理最佳实践笔记-16优化器与性能调优.docx

DB2数据库管理最佳实践笔记-16优化器与性能调优.docx

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优化器优化器是关系数据库的核心,相当于汽车的发动机,DB2在业界最值得称道的功能之一就是其强大的优化器。大多数情况下,用户不必干预优化器的执行,而且DB2优化器总是足够聪明地选择最佳访问计划,当然前提是数据库的统计信息被及时收集。统计信息每个数据库对象状态的信息,可以使用SYSSTAT模式的视图访问:db2 list tables for all|grep -i SYSSTAT不同数据对象类型的统计信息使用不同的视图访问。相比Visual Explain工具,作者强烈推荐使用db2exfmt工具,生成文本访问计划。相比前者生成图形化的访问计划,后者包含更多重要的信息。例:db2sampldb2 connect to sample#创建访问计划表db2 -tvf C:\Program Files\IBM\SQLLIB\MISC\EXPLAIN.DDLc:\db2\a.txtdb2 select empno,firstnme,lastname from employee,department where employee.workdept =department.deptno and mgrno=000060#打开访问计划选项db2 set current explain mode explain#然后执行以下sql,此时会生成针对该sql的访问计划被存储在EXPPLAN.DDL文件中db2 select empno,firstnme,lastname from employee,department where employee.workdept =department.deptno and mgrno=000060#关闭访问计划选项db2 set current explain mode explain no#使用以下工具将这些信息汇总到一个文件中db2exfmt -d SAMPLE -g TIC -w -l -n % -s % -# 0 -o prod_sample_exfmt.txt接下来分析此文件!系统信息系统设置数据库中对优化器起作用的参数:Parllelism = None 代表单分区 = Interparallel 代表多分区 = Intraparallel 代表分区内并行 CPU速度:当前cpu速度的一个估算值,该值并不代表任何有意义的单位,而是DB2在优化其中使用CPU速度作为一个参数,该数值在实例启动时自动计算。Comm Speed:通信速度,在多分区系统中默认为100,可以根据需求调节。Buffer Pool Size:系统中缓冲池总页数的和,注意DB2优化器在计算访问计划时,并不知道有哪些缓冲池将被使用(譬如说某些计划可能需要一些临时表,而临时表的缓冲池也许不同于数据表),因此缓冲池大小只是简单地将数据库中所有缓冲池的页面数量相加。Sort Heap Size:排序区的大小,用来估算排序或者哈希关联是否会溢出。Database Heap size:数据库堆栈大小,在通常情况下对访问计划不会产生决定性的影响。Lock List Size、Maximum Lock List 、Average Applications与Locks Available是锁列表的信息,用来估算某些类型的数据访问是否有足够锁列表容纳相关数据。要点:DB2的优化器足够强大,可以通过不同的查询条件排列次序估算出执行时哪个条件在前会比较有利。因此用户自己的排列不会被优化器所认可,优化器完全基于开销对访问计划进行评估。访问计划估算值并没有实际单位,比较两个访问计划时,一定要基于同一个系统。在不同系统间的开销不具有可比性。读访问计划时从上到下、从左到右。 性能调优性能调优在很多方面与问题诊断有相通之处,甚至从某种程度上说,性能调优是建立在成功的问题诊断的基础之上。性能诊断强调的是“诊断”二字,也就是弄明白系统为什么慢,瓶颈出在什么地方,弄明白问题但却不一定能真正解决这个问题。调优的最终目的不是完全挖掘出问题的根源,而是用不同的手段提升系统的单位时间内吞吐量。性能调优比性能分析更加直观与灵活。有的时候只要了解了系能问题的现象,通过经验与一定程度上对应用与数据库的理解,就能够大体上给出一个调优的方向(譬如是磁盘问题、CPU问题或者内存问题)调优思路:首先,尝试理解系统的架构。至少弄明白系统多少CPU、多少内存,多少连接之类的最基本问题。其次,将问题细化到CPU、内存、I/O或者系统懒惰的大方向。再次,就是要给出一个期望值,尝试用不同的手段将某种指标提高的目标之上,然后再次重复细化问题的步骤,直到系统的整体性能达到预期。两个难点(第一个更重要)1.如何找到一个合理的目标与期望值。(参考最佳实践文档或IBM官方网站寻找资料)2.用什么手段达到目的。

文档评论(0)

dashewan + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档