【发布时间】:2010-10-30 05:02:14
【问题描述】:
我们使用 ODP.NET 对 Oracle 数据库执行查询,通常它工作正常。但是,在该数据库中有一个特定的数据库和一个特定的视图,我们只是无法从 .NET 完成查询。例如:
SELECT some_varchar_field FROM the_view WHERE ROWNUM < 5;
如果我在 Oracle SQL 开发人员中执行此查询,它会在不到一秒的时间内完成。如果我使用 ODP.NET 从我们的 .NET 应用程序执行相同的查询,它会挂起并最终产生“ORA-03135:连接丢失联系”错误。我认为将其限制为仅几行可以消除它作为 FetchSize 问题的可能性。
还有其他查询我可以成功执行,但是我们的程序比 SQL Developer 慢。同样,我意识到 SQL Developer 最初只获取前 50 行的数据,但我认为 ROWNUM 条件将其排除在外。
Oracle SQL Developer 使用的连接或命令与我们的应用程序使用的连接或命令有什么不同会导致速度差异?
很遗憾,我没有访问服务器的权限(只能对其运行 Oracle 查询)。
谢谢。
更新:我已尝试使用 Microsoft 的 Oracle 提供程序进行相同的查询,它执行得非常快。不幸的是,该提供程序已被弃用,因此这不是一个长期的解决方案。
【问题讨论】: