介绍
开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你.
本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括:
* 正确的使用数据库MetaData方法
* 只获取需要的数据
* 选用最佳性能的功能
* 管理连接和更新
以下这些一般性原则可以帮助你解决一些公共的JDBC系统的性能问题.
选用JDBC对象和方法
本节的指导原则将帮助你在选用JDBC的对象和方法时哪些会有最好的性能.
在存储过程中使用参数标记作为参数
当 调用存储过程时, 应总是使用参数标记(?)来代替字面上的参数. JDBC驱动能调用数据库的存储过程, 也能被其它的SQL查询执行, 或者直接通过远程进程调用(RPC)的方式执行. 当你将存储过程作为一个SQL查询执行时, 数据库要解析这个查询语句, 校验参数并将参数转换为正确的数据类型.
要记住, SQL语句总是以字符串的形式送到数据库, 例如, “{call getCustName (12345)}”. 在这里, 即使程序中将参数作为整数赋给了getSustName, 而实现上参数还是以字符串的形式传给了服务器. 数据库会解析这个SQL查询, 并且根据metadata来决定存储过程的参数类型, 然后分解出参数”12345″, 然后在最终将存储过程作为一个SQL查询执行之前将字串’12345’转换为整型数.
按RPC方式调用时, 之前那种SQL字符串的方式要避免使用. 取而代之, JDBC驱动会构造一个网络packet, 其中包含了本地数据类型的参数,然后执行远程调用.


最新评论