相关疑难解决方法(0)

PreparedStatement,CallableStatement和性能注意事项

我有一个oracle stored proc需要从我的Java程序调用.我曾经习惯CallableStatement将参数传递给存储过程.我正在使用oracle瘦驱动程序(在Web逻辑服务器中配置相对于相关的jndi条目).此存储过程没有任何OUT值.此存储过程接受一个数值,并根据收到的值在数据库中执行大量更新.

我得到一个连接对象,然后在循环中调用此存储过程(20次传递20个数字).当我从oracle客户端直接调用此存储过程时,执行将在2-3秒内完成.但是我的java代码无法预测这种行为.有些呼叫甚至需要30-40秒才能完成.

我尝试使用PreparedStatement而不是CallableStatement并且可以看到边际性能改进(尽管行为仍然不一致).

  1. 在我的情况下是否可以使用PreparedStatement而不是CallableStatement给出storedproc没有任何OUT参数?
  2. 是否有任何原因导致PreparedStatement某些性能提升CallableStatement或者我可能观察到的错误?
  3. 有没有更好的方法来解决这个性能问题?

java oracle stored-procedures jdbc

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jdbc ×1

oracle ×1

stored-procedures ×1