数据架构师:DB2 数据仓库性能,第 1 部分:把 OLTP 调优技能转换为对基于 DB2 的业务智能化系统的有效性能管理
2009-11-16 00:00:00 来源:WEB开发网本文主要关注 DB2 环境的设置。在下一期中,将讨论数据仓库 SQL 语句的调优。
适当地设置 DB2 环境
建立有助于提高查询性能的 DB2 数据仓库环境涉及系统级和应用程序级措施。对于 DB2 系统,应该注意以下方面:
使用 64 位寻址。更大的 DB2 缓冲区池总是有助于提高性能,但是它们对于 I/O 密集型的数据仓库工作负载尤其有用。许多有经验的 DB2 专业人员已经习惯了 2GB(大型机)或 4GB(Linux/Unix/Windows)的内存空间限制,他们要花点儿时间适应 64 位程序。
当前的服务器拥有极大的内存:在 IBM System z 大型机、System p 服务器(AIX 或 Linux)或 System x 服务器(Windows 或 Linux)上,可以有 1TB 甚至更多的系统内存。这些平台上的 DB2 支持至少 1TB 的缓冲区池配置。
如果服务器有大量内存资源,就应该好好利用 DB2 缓冲区池。我曾经见过在有 40GB 系统内存的服务器上运行的 DB2 只配置了 800MB 的缓冲区池。这太小了:在这种情况下(至少)10-20GB 要适合得多。
请记住,随着缓冲区池大小的增加,磁盘读 I/O 活动的数量会减少。还可以让 DB2 自己选择缓冲区池大小。自动内存管理是 DB2 9 for LUW 中非常受欢迎的特性,现在 DB2 9 for z/OS(与 z/OS Workload Manager 协作)可以通过 ALTER BUFFERPOOL 命令的 AUTOSIZE(YES) 选项管理缓冲区池大小。
利用查询并行性。DB2 可以把处理查询所需的工作分割为片段,并行地执行这些片段,这会显著减少运行时间。使用这个特性需要通过参数启用它。对于 DB2 for LUW,通过把数据库管理程序参数 intraparallel 的值设置为 YES,就可以启用单一服务器中的并行性。在大型机和 LUW 平台上,给定的动态 SELECT 语句(动态 SQL 是数据仓库环境中常用的特性)的并行性取决于特殊注册表 CURRENT DEGREE 的设置。如果 CURRENT DEGREE 的值(这个值应用于给定的客户机 -DB2 连接,而不是系统范围的值)是 1,那么查询就不会并行执行;如果值是 ANY,查询就可以并行执行(如果优化器认为这会提高性能的话)。由 DB2 决定并行度。
更多精彩
赞助商链接