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

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

 2008-09-17 16:31:13 来源:WEB开发网   
核心提示: 最小化死锁在整个应用程序中,总是按相同次序访问资源可以最小化死锁,针对基础设计、性能和可管理性的 DB2 最佳实践(6),例如,如果一个应用程序组件将要访问表 A, 要了解特定的 Java™ 环境需要考虑的因素,包括使用 SQLJ 创建静态 SQL,然后是表 B,接着是表 C

最小化死锁

在整个应用程序中,总是按相同次序访问资源可以最小化死锁。例如,如果一个应用程序组件将要访问表 A,然后是表 B,接着是表 C,而另一个应用程序组件需要访问表 A 和 C,那么第 2 个组件应该遵循先 A 后 C 的访问次序。

对于 DB2 Version 8,导致死锁的一个常见原因是锁列表数据库配置参数的大小不足,尤其是使用默认值时。请参阅本文的 最大化并发性 小节。如果出现这种情况,增加锁列表大小就可以解决问题。默认情况下 DB2 9 使用了 STMM,它会调整锁列表大小以避免可能由此引起的锁升级和死锁。

确保参照完整性(referential integrity,RI)关系中的依赖表拥有与外键匹配的索引。

利用连接池

利用连接池,包括由应用服务器管理的连接池,如果不在应用服务器环境中运行,则使用由应用程序管理的连接池。打开和关闭连接的过程开销较大,会影响到应用程序或数据库的性能,而使用连接池就可以消除大部分这样的开销。

如果使用了大量的连接,那么请使用 DB2 的连接集中器(connection concentrator)功能。该功能只允许较少的 DB2 “后端” 连接为应用程序连接服务,从而节省了内存。

动态或静态 SQL 选择

现在,动态 SQL 比静态 SQL 更加广泛。通常,动态 SQL 更容易实现,而且通过语句重用,能获得跟静态 SQL 一样的性能。然而,仍然有一些适合静态 SQL 的情形,比如涉及到安全性因素、针对某些 OLTP 工作负载最大化性能等情况。

要获取关于何时使用静态 SQL 的全面信息,请参阅 DB2 在线文档。

要了解特定的 Java™ 环境需要考虑的因素,包括使用 SQLJ 创建静态 SQL,请查阅 “IBM DB2 Database for Linux, UNIX, and Windows Information Center” 的 “Introduction to SQLJ” 部分。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:针对 基础 设计

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