我有一个oracle stored proc需要从我的Java程序调用.我曾经习惯CallableStatement将参数传递给存储过程.我正在使用oracle瘦驱动程序(在Web逻辑服务器中配置相对于相关的jndi条目).此存储过程没有任何OUT值.此存储过程接受一个数值,并根据收到的值在数据库中执行大量更新.
我得到一个连接对象,然后在循环中调用此存储过程(20次传递20个数字).当我从oracle客户端直接调用此存储过程时,执行将在2-3秒内完成.但是我的java代码无法预测这种行为.有些呼叫甚至需要30-40秒才能完成.
我尝试使用PreparedStatement而不是CallableStatement并且可以看到边际性能改进(尽管行为仍然不一致).
PreparedStatement而不是CallableStatement给出storedproc没有任何OUT参数?PreparedStatement某些性能提升CallableStatement或者我可能观察到的错误?