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

将Oracle行的大小设置为较高会导致我的应用程序运行速度变慢?

邓子濯
2023-03-14
问题内容

正如此处详细说明并在此处确认的那样,Oracle在通过JDBC查询数据时返回的默认行数为10。我正在开发一个必须从我们的数据库中读取和比较大量数据的应用程序。我以为,如果我们增加到defaultRowPrefetch1000左右,那么我们的应用程序性能肯定会更快。事实证明,它的
执行速度较慢 ,大约 降低 了20%。

然后,我们决定将数字从10逐渐增加,并观察其性能。通过将其设置在100到200之间,我们已经看到大约10%的增长。但是,我从来没有想过,将其设置得更高会使我们的应用程序运行更慢。任何想法为什么会发生这种情况?

谢谢!

编辑:

为了澄清起见,我使用的是Oracle 11g R2和Java 6。

编辑2:

好的,我想重申一下我的问题,因为从下面的答案来看,我的表达方式不正确:

如果设置较高的提取大小,我的应用程序执行速度会如何变慢?对我来说,这听起来像是在说:“我们为您提供了更快的Internet连接,即管道流量更大,但是您的网络浏览速度会变慢。

就像我们在测试中一样,在所有其他条件相同的情况下,我们很好奇仅此一项更改如何使我们的应用程序性能更差。


问题答案:

可能的解释:

  1. Java无所作为,而Oracle在计算 前1000行 而不是前10

  2. Oracle没有执行任何操作,而Java正在计算 最后1000行 而不是最后10

  3. 通信协议(例如TCP / IP)等待很长时间,然后必须立即处理更多数据,但是 由于硬件限制高峰数据传输将受到限制 。这可以通过协议的开销来解决,因此应该有最佳的获取大小,而任何更少或更多的东西都会更慢;))

  4. 如果获取过程与其他Java代码同步,则情况会变得更糟,因此 Java仅在处理完先前的数据后才要求更多行, 而Oracle在此期间不执行任何操作。

想象有3个人:

* 1st将A4纸对折
* 第二个将成叠的折叠纸从一个房间移到另一个房间
* 3rd从折叠的纸上切出一些形状。

如果第一个必须等​​待直到第二个返回,而第二个必须等待直到第三个完成工作,则堆栈应该有多大?

我猜1000的堆栈不会比10的堆栈更好;))



 类似资料:
  • 我们已经使用jmap在Java 6下运行的大型多服务器应用程序上测量堆大小大约2年了。我们每分钟测量一次。每次测量所用的时间(经过的时间)不到1秒。 我们现在正在Java 7下测试同一个应用程序。现在突然之间,jmap通常需要10秒、20秒,有时甚至更长时间,而且它似乎慢了下来(甚至可能停止!)在那段时间里,JVM。 我们在jmap输出中看到的唯一区别(Java6和Java7之间)是关于有多少字符

  • 我正在开发一个应用程序,它有rest API调用和4个选项卡,使用页面滑动选项卡条,但我的问题是,当我从左向右移动选项卡时,显示页面已经太晚了,并点击了5到8秒为什么?这里我用的是碎片。我的应用程序很像what’s应用程序。 提前谢谢`

  • 问题内容: 首先,我在python脚本中编写了以下代码: 我将其保存在一个名为 然后在命令窗口中编写以下命令: 运行此命令后,出现以下错误: 我本来希望得到这个: 有人可以告诉我如何解决这个问题吗? 问题答案: 使用PowerShell时,我遇到了相同的问题,该修复程序对我有效: 而不是使用,请尝试

  • 我有一个多项目(2个模块),它的建设需要大约1/2分钟每次。当我在Android Studio按下Run的时候,我每次都要等待才能重建app,慢得不得了。每次都用了6/8分钟。 在Android Studio中有没有可能实现构建过程的自动化?或者对于如何让这个过程更快,你有什么建议吗? 这是我的build.gradle文件(应用程序模块):

  • 好的,我在Eclipse Neon中开发一个游戏,我注意到当我在程序中添加了一个break语句时,程序的速度从大约120 fps降低到了80 fps(这没有什么意义)。所以我决定在另一个班级进行测试,得到了相似的结果。 这是我运行的代码: 所以当我运行代码时(在Eclipse Neon 2 (4.6.2))我得到了意想不到的结果: 使用中断语句:耗时(MS):344.8(5次测试的平均值) 无中断

  • 目前,我的网络应用程序运行在两个基于云的视窗2012 R2服务器上——一个运行Tomcat,一个运行SQL服务器Express。视窗服务器是4GB英特尔XEON(R)CPU E5-2660 v2@2.20 Gghz 我正在Azure的PaaS(平台即服务)上测试我的应用程序。我用Tomcat 9.0创建了一个Linux Web应用程序来保存应用程序(P1V2),用Azure SQL Server保