使用 ADF 和 Oracle SQL 执行缓慢的视图
Posted
技术标签:
【中文标题】使用 ADF 和 Oracle SQL 执行缓慢的视图【英文标题】:Slow view execution using ADF and OracleSQL 【发布时间】:2012-10-02 09:02:35 【问题描述】:尝试在 Oracle 数据库中执行视图对象时遇到一个不寻常的问题。查询本身使用 Toad for Oracle 在 10 秒内执行,而在视图对象中执行相同查询则需要一分钟以上。我正在使用带有 ADF 的 JDeveloper 10.1.3.3.0.4157,并且正在连接到 10g Oracle 数据库。
我发现在执行过程中,数据库服务器不断被 128 字节的数据“ping”(我使用 Wireshark 完成了这项工作)。这反过来又会阻塞连接,这也是数据需要很长时间才能到达应用程序的原因。我已经用会话跟踪测试了这个理论,结果证明查询本身与 Toad 的查询在同一时间范围内执行。
我想问题出在数据库驱动程序的某个地方,但由于我无法调试它,所以我两手空空。
任何建议将不胜感激!
更多信息:
有问题的查询有点大。它也是在运行时构建的并且是可变的(但是,属性的数量、名称和类型是恒定的)。有趣的是,当查询很小(呃)时,执行时间会下降到 Toad 执行中存在的时间。
在属于同一应用程序模块的另一个视图中检测到类似的“ping”效果,但测试表明这不是 AM 配置的问题,因为它与所有其他配置相同,并且工作正常.此外,与相关查询在同一 AM 中的其他视图没有显示任何相同问题的迹象。
我一直在玩视图调整设置,但执行时间没有区别。
【问题讨论】:
【参考方案1】:尝试将您的视图查询创建为数据库视图。然后在该视图上创建视图对象并使用视图标准来塑造数据。只有简单的 select * from complex_view 会在 ViewObject 中。您也可以尝试具体化该数据库视图以提高性能。
【讨论】:
以上是关于使用 ADF 和 Oracle SQL 执行缓慢的视图的主要内容,如果未能解决你的问题,请参考以下文章