首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 编程开发 > 编程杂谈 > 正文
DB2 数据库 取得最佳性能的准则
来源:68design.net 2007年10月13日 11:40 网友评论:0条 点击:
  并行方面的建议

  为了进一步促进并行处理所能带来的性能提高,下面列出了一些需要考虑的事情:

  1、尽可能均匀地对表空间分区,因为数据不整齐会对并行度产生影响。一般来说,DB2 根据最大物理分区的大小将表空间分成逻辑上的几块。

  2、为 DB2 应用程序的处理分配尽可能多的中央处理器(central processor,CP),以及尽可能多的 I/O 设备和路径。

  3、对于 I/O 密集型查询,应确保分区的数量与可以访问该表空间的 I/O 路径的数量一致。

  4、对于处理器密集型查询,应确保分区的数量等于将被分配用来在数据共享组上处理查询的 CP 的数量。
将用于表空间和索引的分区放在单独的 DASD 卷中,并且,如果可能的话,要隔开控制单元,以减少 I/O 争用。

  5、按时执行 RUNSTATS 实用程序,以获得分区级的统计信息。

  6、监控虚拟缓冲池的阈值和使用情况,确保提供了足够的缓冲池空间来最大化并行度。

  缓冲池方面的考虑

  缓冲池的重要性

  很多专家将数据库缓冲池看作 DB2 环境中影响性能的最关键的资源。很多 DB2 的架构和设计,其基本思想都是尽可能地避免物理 I/O。

  DB2 缓冲池由数个 插槽(slot)的连续的内存组成。数据和索引页被从 DASD 中读出之后,便进入这些插槽,并留在其中,直到 DB2 缓冲区管理器确定那些插槽要用于其他数据。应用程序所请求的数据出现在内存中(而不是外面的 DASD 上)的概率越大,总体性能就越好。实际上,这里的数据被重复使用,因而减少了应用程序对 I/O 的需要。

  是否释放一个缓冲池槽,这是根据最近被使用(LRU)原则来决定的。DB2 维护两个 LRU 列表,一个用于被随机访问的页,另一个用于被顺序访问的页。这样可以防止大规模的表扫描完全支配缓冲池,并恶劣地影响随机操作。通过使用不同的阈值,DB2 提供了改善缓冲池性能的灵活性。在 DB2 SQL Reference 手册的第 2.7.4 节中对这些阈值进行了较为详细的讨论。

  为缓冲池设置适当的大小

  缓冲池大小的指定要取决于可用存储(包括中央存储和扩展存储)的容量。我建议首先分析缓冲池的分配,然后逐渐增加缓冲池的大小,直到通过增加分配的空间已无法增加更多的吞吐量,或者直到 MVS 换页率已难于接受为止。为实现这一点,要使 DASD I/O 的数量持续下降,并不断增加 VPSIZE,直到换页的成本超出了通过减少 I/O 所带来的好处为止。

  早些时候,GETPAGES 的数量被认为可能是对 DB2 正在运行的工作量的最好度量。缓冲池的目的是减少 I/O(异步读通常表明需要进行预取,从性能角度来看,这样做通常是值得的。另一方面,同步读常常需要对 DASD 进行随机 I/O,因为被请求的页不在缓冲池中)。会计报表显示对应于每个缓冲池的 GETPAGES 和同步读的数量。一个被普遍接受的 ROT 声称,如果 GETPAGES 对同步读的比率小于 10:1,那么应该估计对更大缓冲池的需要。

  多缓冲池配置

  如果操作系统允许为 DB2 缓冲池分配相当大的内存,那么使用多缓冲池的配置很可能可以提高特定应用程序或数据库的性能。然而,需要清楚的是,若有了多个缓冲池,那么对这些缓冲池使用效率的监控就变得更加重要。

  下面给出了关于分配多个缓冲池的一般建议:

  1、将表空间与和它们相关的索引分放到不同的缓冲池中,以减少索引 I/O。

  2、将有不同数据访问模式的数据统一放到不同的缓冲池中。批处理和查询应用程序通常要进行大量的顺序处理,而用于 OLTP 的数据访问往往更具有随机性。这为利用各种阈值处理缓冲池中某些类型的数据访问提供了一种方法。

  3、为独立的应用程序提供一个单独的缓冲池。这就为紧密监控应用程序的性能问题或测试新的应用程序提供了一种方法。

  4、如果排序的性能在您的环境中很重要,那么需要为工作文件创建一个单独的缓冲池。

  5、对于相对较小但更新频繁的表,通过一个足够大的单独的缓冲池,也许可以同时减少读和写的 I/O。

  6、为只读表(小的引用表)提供单独的缓冲池可以提高性能。

  结束语

  考虑周详的数据库设计可以提供巨大的性能收益,但是这必须在应用程序开发过程的早期便开始着手。从早期的 DB2 开始,明智的开发人员就已经使用了前面提到的很多准则,这些准则直到现在也仍然成立。但是,DB2 功能的增强、其他领域中硬件和软件技术的变化将影响当前和将来的应用程序,知道这一点至关重要。当数据库性能成为开发过程中的焦点时,您的数据库设计使得为 DB2 应用程序提供最佳性能有了更大的可能性。

首页 上一页 [1] [2] [3] [4] [5] 下一页 尾页
上一篇:介绍VS 2008和.NET 3.5 Beta2版本新特性   下一篇:浅谈Linq To Sql集成数据库语言的优劣
收藏此页】【打印】【关闭
 相关文章  我要点评
·优化Oracle DBA数据库性能体会分享
·Oracle数据库查询十个小技巧
·ORACLE数据库的统一命名与编码规范
·Oracle 10g学习之数据库恢复
·IBM DB2数据库的常用日期操作函数
·解决Oracle数据库运行错误的方法
·优化SQLServer数据库服务器内存的配置
·解决Sybase数据库乱码问题的方法

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】