【问题标题】:Oracle Procedure Slowness (Operation Time out error)Oracle 过程缓慢(操作超时错误)
【发布时间】:2017-04-18 03:55:12
【问题描述】:

我们有一个包内的 oracle 程序。当我们从 .NET(Windows 窗体)调用该过程时,它会给出操作超时错误
从屏幕上看到此消息“操作超时错误”后,当我转到 SqlDeveloper 并编译所有包然后编译它们后,程序运行得非常快,我可以在 5 秒内检索数据。 谁能告诉我如何解决这个问题以及根本原因是什么?

【问题讨论】:

标签: oracle stored-procedures plsql plsqldeveloper


【解决方案1】:

在运行程序之前试试这个

ALTER PACKAGE yourpackage
   COMPILE PACKAGE;

【讨论】:

    【解决方案2】:

    您应该分析为什么包变得无效并且需要在执行之前进行编译,或者消除导致失效的代码,或者如之前的回答所说,在运行过程之前执行编译。

    当您更改某些依赖对象(在某些加载期间交换表名或同义词、更改表、动态删除和创建包所依赖的对象)时,包可能会变得无效。这两个线程可能会对您有所帮助:What Situations Cause Oracle Packages to Become Invalid?When does an Oracle Package Specification become INVALID 如果您能够消除包失效,那么最好不要在每次运行程序之前进行编译。

    另一个原因是从 .NET 调用过程没有重新编译包可能是驱动程序。几年前我遇到过这样的问题,并记得更换驱动程序有帮助。但我不记得我们是改成托管驱动还是非托管驱动了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多