在使用 SQLJ 和 JDBC 时获取最优的 DB2 性能
2008-09-16 16:29:32 来源:WEB开发网缺省情况下,定制自动将所生成的包联编到数据库,但也可以单独地使用 db2sqljbind 来做到这一点,如下所示:
db2sqljbind -user myusername -password mypassword
-url jdbc:db2://localhost:50000/sample SqlJDemo_SJProfile0.ser
您可以用 db2sqljprint 打印出 DB2 概要文件的可读纯文本版本。这个命令使用如下语法:
db2sqljprint profilename
最优化 DB2 性能
最优化性能概述
前一章讨论了静态 SQL 的使用,静态 SQL 在许多情况下能够比 JDBC 所用的动态 SQL 运行得更快。本章将讨论许多其它技术,您可以在使用 SQLJ 或 JDBC 时用它们来最优化性能。
禁用 AutoCommit
在本教程第一部分所示的示例中,您建立了到 DB2 数据库的连接。如果您使用 JDBC 建立连接,那么缺省情况下,对于数据库,AutoCommit 特性是打开的。
AutoCommit,顾名思义就是对提交到数据库的每个 SQL 语句,都进行自动提交。这种自动功能可以减少您必须进行的 SQL 编码工作量,但它同时会使 DB2 的整体响应时间变慢,因为每个语句在执行时都需要额外的开销。
AutoCommit 特性还可能会影响应用程序的整体完整性,因为您最终有可能无法回滚应用程序所进行一系列更改。
要关闭连接的 AutoCommit,使用下列代码来创建连接:
con = DriverManager.getConnection(url, userid,password);
con.setAutoCommit(false);
限制列
SQL 是一种简明而又功能强大的语言。只用几个简单的单词,譬如:
SELECT * FROM EMP_ACT
就可以从表中检索所有数据。
但仅因为可以这样做并不意味着应该这样做!因此虽然上述语句很容易编写,但对于 DB2,它采用如下形式:
更多精彩
赞助商链接