rye*_*3ad 0 java oracle executequery struts-1
我继承了......好吧,我想我可以称之为#### Struts应用程序,我的任务是优化Levey-Jennings流程,检查我们的质量控制标准是否符合要求.
这个过程本身运行良好,但即使数据集较小,性能时间也一直存在巨大的增长.我测试了算法的每个部分之间的时间,发现大时间的猪是Java的executeQuery()方法.
最近我运行应用程序并将执行时间记录为10秒.executeQuery()自己花了六秒钟.很想知道问题是什么,我把查询带到TOAD并逐字运行 - 它只需要1秒钟就可以运行.
我运行了一个更大的数据集,在Levey-Jennings应用程序中运行了60秒 - 然而,在TOAD中,需要10秒.
这是查询的问题,还是使用executeQuery()通常是极端减速的前兆?
在TOAD(或任何其他IDE)中运行查询时,此工具希望尽快为您提供可以看到的结果.通常,它们会显示一个介于10或40行之间的网格.为了尽可能快地向您显示前10-40行,他们提示查询或更改优化环境以尽快生成第一行.
在这里,您可以看到有关FIRST_ROWS提示的更多信息:http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/sql_elements006.htm#SQLRF50302
您的应用程序中的查询可能不使用FIRST_ROWS提示.它希望所有行尽可能快.它不关心第一行是否立即出现.因此,这两个查询的优化环境是不同的.
它也没有帮助TOAD显示生成第一行所花费的时间,因为它会让您认为这是获取所有行所需的时间.但是,可以选择导航到最后一行.按下它,你会发现它现在需要更长时间.
希望这可以帮助.
问候,
Rob.
| 归档时间: |
|
| 查看次数: |
1691 次 |
| 最近记录: |