JDBC DB资源关闭性能问题

时间:2015-02-25 08:56:31

标签: java sql-server jdbc

我们编写了一个存储过程,其中我们需要对大量数据(100000条记录)执行逻辑,我们从java代码中调用此SP。

表现很好,很难计算1分钟。

真正的问题是它花了近10分钟来关闭可调用语句。我们在SP中使用了多个游标。我们也正在关闭并正确解除分配。

  1. 那么可能会出现什么问题,因为它花了很多时间来关闭单个可调用语句?
  2. 如果我们绕过关闭可调用语句代码也可以,因为这是单线程java作业,它在SP执行后终止,而不是等待语句关闭?

1 个答案:

答案 0 :(得分:1)

  

1.那么可能会出现什么问题,因为它花了这么多时间来关闭单一的可调用语句?

当您尝试关闭statement时,jdbc也会尝试关闭其ResultSet对象(如果存在)。在你的情况下,如你所说它是非常大的结果集,它可能会增加所花费的时间。

  

2.如果我们绕过关闭可调用语句代码也可以,因为这是单线程java作业,它在SP执行后终止,而不是等待语句关闭?

恕我直言,关闭statement对象总是更好,因为它可能会产生一些问题。但是你可能有机会跳过,因为你说这是一个单线程的java作业