资源描述:
《DB2性能优化快速入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DB2性能优化快速入门李越(liyyue@cn.ibm.com),软件工程师,IBM李越IBM中国软件开发中心WebSphereFederationServer测试部门软件工程师。曾在developerWorks中国发表过有关优化DB2的代理和连接的文章。王飞鹏,软件工程师,WSO2Inc王飞鹏,IBM中国软件开发中心的软件工程师,主要从事DB2Everyplace相关的研发和客户支持工作;曾在developerWorks中国发布了多篇与DB2Everyplace产品相关的技术文章。狄浩,软件工程师,W
2、SO2Inc狄浩,IBM中国软件开发中心软件工程师,主要从事IBMCM内容管理产品的相关工作,最近对DB2的性能调优比较感兴趣。张蓉蓉(rrzhang@cn.ibm.com),软件工程师,WSO2Inc张蓉蓉,IBM中国软件开发中心软件工程师。简介: 本文是针对DB2®UniversalDatabase(DB2UDB)的初学者在遇到DB2的性能问题的时候不知道从何分析,从何入手的这一问题,从DB2的体系结构介绍开始,由浅入深的讲述了DB2性能优化的一些基础知识,简单地介绍调优的原理和工具。同时针对性能上
3、的一些典型问题,如DML性能问题(查询和插入操作),DDL性能问题(建表,建索引),并发性问题等等,介绍一种渐进的分析方法,同时结合一些具体的优化案例进行分析以及成型的DB2调优工具(DB2PerformanceExpert)的介绍,使得初学者能够在很短的时间内掌握DB2性能优化的基本技巧,并且能够在数据库早期设计时考虑到一些性能因素而防范于未然。本文的标签: best_practices,关于产品,性能,故障检修,管理,调试,配置标记本文!发布日期: 2009年6月01日级别: 初级访问情况 1390
4、次浏览建议: 0 (添加评论)平均分(共4个评分)DB2性能优化概述IBM为社区提供了DB2免费版本DB2Express-C,它提供了与DB2ExpressEdition相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。DB2性能优化是一件较为复杂的综合性的工作,需要对问题的根源作全方位的探索和思考。同时也需要较深厚的数据库管理经验与优化知识。这对于初学者来说可能有些勉为其难。但是在很多情况下,随着DB2数据库中的数据量的不断增长或者用户数的激增,数据库系统的性能会显著下降,而此时快速定位性能上
5、的瓶颈则至关重要。下面简要地介绍一下DB2的调优的一些因素和工具,以及一些原理,使初学者对性能优化能够有一个大致的了解。DB2的性能优化可以从三个方面分析:内存,CPU和I/O。内存因素在内存方面,主要是考虑缓冲池(BUFFERPOOL)的使用。缓冲池是一片用来缓冲从磁盘上读取的数据和索引的内存区域,这些数据和索引信息在缓冲池中进行运算后最终还要写回磁盘。缓冲池的页面大小有四种(4K,8K,16K,32K),分别对应四种不同页面大小的表空间。缓冲池的大小决定了能够从磁盘上缓冲数据的容量大小。当然缓冲池也
6、不是越大越好,缓冲池过大可能会导致连接数据库的时间过长,因为在连接数据库时要为数据库的缓冲池分配内存空间。可以通过计算缓冲池的命中率来评估缓冲池的使用效率:缓冲池命中率=(1-((数据物理读+索引物理读)/(数据逻辑读+索引逻辑读)))*100%,缓冲池命中率越大说明缓冲池的使用效率高。缓冲池命中率太小说明缓冲池太小应当调大。其中的数据物理读,索引物理读以及数据逻辑读和索引逻辑读都可以从缓冲池的快照中获取。在内存方面要考虑的另外几个重要因素是排序堆(SORTHEAP),锁列表(LOCKLIST),日志缓
7、冲区(LOGBUFSZ)。排序堆在查询结果带有排序选项而没有相关索引对应时将会被使用,排序堆太小会产生排序溢出(Overflowed),那些在排序堆中装不下的排序数据将会溢出到一个临时表中,这会使性能下降。与SORTHEAP参数相关的是SHEAPTHRES_SHR和SHEAPTHRES,SHEAPTHRES_SHR限制了一个数据库中共享排序的最大内存,SHEAPTHRES限制了私有排序的最大内存。LOCKLIST指的是一个数据库中用来存放锁的内存空间,当这个参数设得过小会导致在锁用光这部分资源后导致锁升
8、级(即多个行锁转化为一个表锁来释放出更多的资源)。这会导致系统的并行性下降,很多应用连接出现挂起,使得系统的性能衰退。所以尽可能调大LOCKLIST参数,这里需要指出LOCKLIST指的并不是锁的个数,而是以数据库页为单位的一片内存区域(在32位系统中每个锁需要96个字节,锁上加锁的话每个锁则需48个字节。在64位系统中每个锁需要128个字节,锁上加锁的话每个锁则需64个字节)。与LOCKLIST参数对应的是MAXLOCKS参数,MAXLO