David Beulke, DB2 顾问, IDUG
2008 年 1 月 15 日 企业逐渐意识到,“缩减、重用、循环”不仅仅是拯救环境的策略,同时也是一种切实可行的业务战略。IBM 近来将其一个数据中心内近 4,000 台服务器整合为 30 台运行 Linux 的 System z 大型机——此次举措有望使能源消耗降低 80%。
DB2 提供了许多重用或循环利用资源和数据的机遇。善加利用此类机遇能帮助您发挥 DB2 系统的最大效力。
最重要的 DB2“循环”机遇是在 DB2 缓冲池内使用恰当的设置和分配。这些池缓存已访问的数据,使用之前已检索的内存数据是最高效的 DB2 操作之一。在 DB2 9 for LUW 中,STMM 工具协助管理内存设置并自动分配内存。在 DB2 8 和 9 for z/OS 中,缓冲池大小限制的消除和重新将缓冲池分配给更多内存增加了高效工作的机会。我已经看到,客户机受益于 I/O 分析、缓冲池改进和调整大小的分配,这一切优化了数据和缓冲池的重用。分析一个客户机的具体系统 I/O 需求并调整缓冲池对象、分配和时段能使 I/O 减少约 12%,同时大幅度改善系统的整体吞吐量。
DB2 还为事务连接资源提供了缓存和重用。由于建立、授权和分配事务资源的成本可能非常昂贵,循环利用此类资源对于海量 CICS 和分布式动态 Web 事务而言尤为重要。DB2 Connect 接口和 CICS RCT/RDO 接口包含许多针对 DB2 线程重用和安全性的设置。根据公共事务安全性配置文件和事务使用情况,专用事务 ID 线程应定义并分配为使用通用辅助授权安全组。随后这些专用线程即可供其他带有相同安全性配置文件的事务重用。
对于 CICS 和分布式动态 Web 事务,DB2 计划/包信息可缓存并重用。在静态 SQL 应用程序内,通过计划/包 BIND 参数来实现此任务。DB2 评估下面四种条件,确定是否循环利用系统内之前访问的计划/包分配:
- 事务来自同一个事务 ID 还是事务组?
- 事务是否使用相同的 DB2 计划/包?
- 事务是否将由相同的安全性或分组安全性 ID 使用?
- DB2 计划/包是否与 RELEASE(DE_ALLOCATE) 绑定?
如果所有这些条件都得到满足,资源(包括连接建立、安全性和资源处理分配)即可供其他事务重用。在一个客户机环境中,调整这些设置能消除 17% 的 CICS CPU 工作负载。
对于分布式动态 Web 事务,Dynamic Statement Cache(DSC)可帮助系统循环利用一个已为动态 SQL 语句准备好的、优化并使用过的访问路径。关键在于定义 DSC 时,应使之大小合适,可容纳活动的语句。如果 DSC 过大,DB2 将会执行漫长低效的搜索,搜索各种具有不同安全性配置文件或参数长度的 SQL 语句。如果将 DSC 定义的过小,DB2 就没有足够的空间来存储所有可能被重用的活动 SQL 语句。
还可以使用 EDM Pool 来循环利用带有 CACHEDYN=YES 设置的 SQL 语句。此参数告诉 DB2 缓存并允许重用具有类似安全性配置文件、恰当的计划/包 BIND 参数和类似 SQL 语句参数标记的 SQL 语句。
DB2 for z/OS 提供了在分布式服务器上与 DB2 Connect 合作并信任其事务的能力,从而改进了动态事务安全性的循环利用。DB2 for z/OS 和分布式 DB2 服务器实例使用并通信受信任的属性和受信任的事务上下文。这些全新的受信任参数允许事务重用用户安全性和计划/包属性,避免了冗余的安全性检查,改善了响应时间。
这些因素能够大幅度改善响应时间。在下一期的 IDUG 研讨会中(参加 idug.org),您可进一步了解这些设置及其使用方法。
参考资源
关于作者  | |  | David Beulke 是 IDUG 的前主席、DB2 顾问、作家和演讲家,擅长数据库性能、数据仓库和互联网应用程序。 |
对本文的评价
|