尝试在 Oracle 数据库中执行视图对象时遇到一个不寻常的问题。查询本身使用 Toad for Oracle 在 10 秒内执行,而在视图对象中执行相同查询则需要一分钟以上。我正在使用带有 ADF 的 JDeveloper 10.1.3.3.0.4157,并且正在连接到 10g Oracle 数据库。
我发现在执行过程中,数据库服务器不断被 128 字节的数据“ping”(我使用 Wireshark 完成了这项工作)。这反过来又会阻塞连接,这也是数据需要很长时间才能到达应用程序的原因。我已经用会话跟踪测试了这个理论,结果证明查询本身与 Toad 的查询在同一时间范围内执行。
我想问题出在数据库驱动程序的某个地方,但是由于我无法调试它,所以我两手空空。
任何建议将不胜感激!
更多信息:
有问题的查询有点大。它也是在运行时构建的并且是可变的(但是,属性的数量、名称和类型是恒定的)。有趣的是,当查询很小(呃)时,执行时间会下降到 Toad 执行中存在的时间。
在属于同一应用程序模块的另一个视图中检测到类似的“ping”效果,但测试表明这不是 AM 配置的问题,因为它与所有其他配置相同,并且工作正常。此外,与所讨论的查询相同的 AM 中的其他视图没有显示任何相同问题的迹象。
我一直在玩视图调整设置,但执行时间没有区别。