当前位置: 首页 > 面试题库 >

使用JDBC for Oracle迭代ResultSet花费大量时间,大约16s?

充培
2023-03-14
问题内容
while( result_set.next() )
{
  ...
}

我已经使用System.nanoTime()并计算了时间,每次迭代所花费的时间以毫秒为单位,但是整个循环大约需要16秒。我正在考虑条件测试花费大量时间,next()功能的可能原因。

仅供参考,我正在连接到远程数据库服务器,并且使用上述方法再次计算出我做出的选择查询(以毫秒为单位)。关于它为什么发生以及我如何花时间将结果集迭代到最大每秒的任何原因?

编辑:

我正在处理大约4000条记录,每条记录的内容约有10列,每列的大小约为10个字符

EDIT2 谢谢setFetchsize()做到了神奇,棒极了


问题答案:

尝试更改ResultSet的获取大小。默认情况下,Oracle
JDBC驱动程序一次从数据库游标仅接收10行结果集。它可能不会显着提高性能,但是还有许多其他选择可以使驱动程序更快地工作。



 类似资料:
  • 我正在努力改进我写的一个数据传输程序。我在寻找如何让它更快的建议。我的程序通过填充ResultSet并将结果写入文件来从数据库(通常是Oracle11g)中提取数据。该程序定期查看表,并查询某个特殊列是否发生了更改。例如,这可能是这样一个查询:

  • 附加信息-节点数(a类)-1791节点数(b类)-3341 有没有更快的方法来加载这个,加载csv操作需要这么多时间?我是不是哪里搞错了?

  • > 我有两个Nexus存储库 我在C:\users\login.m2中有两个settings.xml文件: 发布开发人员快照 在C:\apache-maven-3.2.3\conf: [信息]下载:http://30.30.20.40:8085/nexus/content/repositories/releases/org/apache/httpcomponents/project/4.1.1/p

  • 我正在使用Flutter开发一个Android应用程序。在我的应用程序中,有一个功能,用户可以从他们的设备上传图片。为了存储图像,我使用firebase云存储&下面是我用于将文件上传到firebase云存储的部分代码。 这里有3个相关的flutter插件,我正在使用,上面的帮助代码上传文件。 一切正常。不过,文件上传要花很多时间。几乎需要40-50秒才能完成步骤3()。有时也是1-半分钟。关于我的

  • 我目前正在使用Springfox Swagger2来提供API UI(Swagger-UI),并使用Java配置来记录我的spring mvc应用程序。要启动我的API,最初需要大约90秒,整个扫描过程。我的项目中大约有12-15个模块和100个控制器,它是一个基于servlet的桌面应用程序 我目前只需要控制器信息,而不需要任何型号信息。我已经从启动过程中排除了模型扫描,以便启动我的API,但它

  • 问题内容: 我在这个小提琴中玩弄指令和绑定。我收到以下错误: 为什么会这样呢?我认为这与绑定有关。 问题答案: 这是因为它在每次经历摘要周期时都在创建一个全新的对象。监视在此数据绑定中注册,因此每次它评估一个新对象时都会创建它,因此它将与以前的值不同,从而触发另一个摘要循环。最终,它终止,因此不会无限循环。有关更详尽的说明,请参见http://docs.angularjs.org/guide/co