WEB开发网
开发学院数据库DB2 针对基础设计、性能和可管理性的DB2最佳实践 阅读

针对基础设计、性能和可管理性的DB2最佳实践

 2010-05-14 15:00:37 来源:WEB开发网   
核心提示:使用 Design Advisor 建议索引一旦开发出了一种模式并且可以使用,将 SQL 语句作为输入使用 Design Advisor 来建议索引,针对基础设计、性能和可管理性的DB2最佳实践(4),对于经常使用的查询以及大型或复杂的查询,这一点尤其重要,以及 DB2 Version 8 和 DB2 9 都支持的 A

使用 Design Advisor 建议索引

一旦开发出了一种模式并且可以使用,将 SQL 语句作为输入使用 Design Advisor 来建议索引。对于经常使用的查询以及大型或复杂的查询,这一点尤其重要。

此外,针对由完整应用程序测试填充的动态 SQL 缓存重新运行 Design Advisor。这允许根据实际工作负载和 SQL 语句的执行频率建议索引。确保在 Design Advisor 执行之前运行了 runstats。

另一个方法可能需要较多的操作,但是允许利用潜在的(“虚拟的”)索引查看访问计划。可通过以下方法实现:

发出 SQL 语句 SET CURRENT EXPLAIN MODE RECOMMEND INDEXES。

在同一个会话中执行一条 SQL 语句,这会导致用建议的(“虚拟的”)索引填充 ADVISE_INDEX 表。

执行 SQL 语句 SET CURRENT EXPLAIN MODE EVALUATE INDEXES。

执行同一条 SQL 语句。现在将用优化器根据实际和虚拟索引选择的访问计划来填充解释表。

最后,利用当前和建议的索引使用诸如 db2exfmt 的解释工具查看访问计划。

改善日志性能

编写 DB2 日志的速度是一个重要的 DB2 性能因素(依赖于数据更新的速率)。以下是一些帮助改善 DB2 记录日志性能的技巧:

禁用自动提交(autocommit),在许多应用程序环境中这是默认启动的,比如 JDBC。每次提交都会记录一个同步日志。但是如果应用程序在每条 SQL 语句执行之后都需要提交,那么请不要禁用自动提交。

如果没有必要,不要记录大数据对象(CLOB、DBCLOB 和 BLOB)。

将 BD2 日志隔离到专门的磁盘存储器上(不要与任何其他内容共享)。特别地,确保没有将日志保存在实例目录的默认位置,因为默认情况下数据库本身也位于这里。

为日志分配一个具有快速写入缓存的磁盘存储器。

将日志缓冲区大小增加到 256 个页面或更大。

使用访问计划信息帮助优化 SQL 语句

了解如何使用访问计划信息优化 SQL 语句。访问计划描述访问路径,这些路径是 DB2 优化器为 SQL 语句访问数据而选择的。可视化解释(Visual Explain)是查看访问计划的最简单方式,通过 DB2 Control Center 实现。db2expln 和 db2exfmt 命令用更简洁的方式提供了广泛的信息,在需要针对性能频繁分析 SQL 语句时,通常使用这两个命令。

db2expln 使用起来比 db2exfmt 稍微简单,因为您能够直接将一条语句传递给它,以进行解释。同样,使用 db2expln 更容易分析一个包中所有的静态 SQL。db2exfmt 需要已经将一条 SQL 语句解释到这些表中,并设置 EXPLAIN 表中信息内容的格式。db2exfmt 通常用于广泛的性能分析,因为它提供了大部分优化器信息。

要了解关于使用 Explain 工具的更多信息,请查阅 “IBM DB2 Database for Linux, UNIX, and Windows Information Center” 的 “Visual Explain overview”、“db2expln - SQL and XQuery Explain Command” 和 “db2exfmt - Explain table format command” 部分。

运行时和可管理性技巧

专用的数据库服务器

如果可能,将服务器专门用于运行数据库。这样,无需关心未知的额外工作负载就可以执行数据库调优。

DB2 的自动功能

考虑使用 DB2 的自动功能,尤其是 DB2 9 支持的 STMM,以及 DB2 Version 8 和 DB2 9 都支持的 Automatic Maintenance(尤其是自动的 runstats)。这些功能不但会减少监控和维护数据库所需的操作,也能对数据库进行更加有效的调优。

上一页  1 2 3 4 5  下一页

Tags:针对 基础 设计

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接