【问题标题】:Set Query Timeout value in oracle database for a web application在 Oracle 数据库中为 Web 应用程序设置查询超时值
【发布时间】:2014-08-30 05:24:42
【问题描述】:

当我在 Visual Studio 2003 中处理一个新的 Web 应用程序项目时,我的应用程序有正在执行的查询。此应用程序连接到 Oracle 类型的数据库。

现在,我要做的是将这个应用程序中所有查询的查询超时值设置为非常大的值,或者说无穷大,这样当执行查询失败时,它不会直接重新执行它,因为如果它执行了很多次,并且一直在执行,数据库过载!

我们注意到大约 60 个会话同时打开并执行此查询,如果它执行失败!

现在,我的问题:

  1. 由于我是 oracle 新手,在哪里可以找到查询超时变量并将其更改为非常大的值?如果我的应用程序中有很多查询怎么办?我是否需要更改每个查询的超时值?

  2. 我想知道HTTP/SOAP超时值和查询超时值的区别?

谢谢你们!


我搜索使用 OracleCommand 类中的 CommandTimeout 属性,但没有找到。 还有其他方法可以使用此属性设置超时吗?

【问题讨论】:

  • 谢谢!是的,我查看了这个链接,无论如何这个方法(setQueryTimout)在 JAVA 中是受支持的,我在 C#(CommandTimeout)中找到了类似的属性。其实奇怪的是我不能一直在c#中调用这个属性!有时无法从 OracleCommand 类中看到此属性

标签: c# sql oracle web timeout


【解决方案1】:

在Oracle数据库中没有默认的查询超时值,但是我们可以使用资源管理器来做这样的事情,当估计查询需要超过X时间时,可以取消查询。最好使用它来保护数据库服务器免受没有人会等待的恶意查询。这与将超时设置为无限制正好相反,最终确保正确工作的应用程序部分不受不良部分的阻碍。

请参阅Managing Resources with Oracle Database Resource Manager,您是否真的想保护您的用户免受性能不佳的应用程序的影响。

很可能,较早的超时发生在 Web 层。

【讨论】:

  • 谢谢 ik_zelf,我会考虑这个解决方案。
猜你喜欢
  • 1970-01-01
  • 2018-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多