尝试在Oracle数据库中执行视图对象时遇到异常问题。查询本身在10秒内使用Toad for Oracle执行,而在视图对象中执行相同的查询则需要超过一分钟。我正在使用带有ADF的JDeveloper 10.1.3.3.0.4157,并连接到10g Oracle数据库。
我发现在执行过程中,数据库服务器经常被“ping”到128字节的数据(我使用Wireshark完成了这项工作)。反过来,这会堵塞连接,这也是数据需要很长时间才能到达应用程序的原因。我用会话跟踪测试了这个理论,事实证明查询本身在与Toad相同的时间框架内执行。
我认为问题出在数据库驱动程序的某个地方,但由于我无法调试它,所以我空手而归。
任何建议都将不胜感激!
更多信息:
有问题的查询有点大。它也是在运行时构建的并且是可变的(但是,属性的数量,名称和类型是不变的)。有趣的是,当查询很小(呃)时,执行时间会落到Toad执行中的执行时间。
在属于同一应用程序模块的另一个视图中检测到类似的“pinging”效果,但测试暗示这不是AM配置的问题,因为它与所有其他的相同,并且它们工作正常。此外,与查询相同的AM中的其他视图不会显示任何相同问题的迹象。
我一直在使用视图调整设置,但与执行时间没有区别。
答案 0 :(得分:1)
尝试将视图查询创建为数据库视图。然后在该视图上创建视图对象,并使用视图条件来整形数据。只有简单的select * from complex_view才能在ViewObject中。您也可以尝试实现该数据库视图以提高性能。