终止oracle数据库中的查询执行

本文关键字:查询 执行 oracle 数据库 终止 | 更新日期: 2023-09-27 17:57:32

我有一个asp.net页面,允许用户在oracle数据库上运行选择查询。然后将结果作为数据表显示在网页上。

有些时候,用户可能会输入查询,由于执行时间长、深度深,这些查询会对数据库产生严重影响。

是否有可能提及DB上运行的每个查询的超时。若查询运行时间超过指定时间,则必须停止对数据库的执行。

终止oracle数据库中的查询执行

您可以在应用程序或DB端解决此问题:

应用程序端:SQLQueryTimeout您可以为驱动程序上的所有语句设置SQLQueryTimeout,也可以单独为某个命令设置CommandTimeout。如果查询花费的时间比调用TRAP花费的时间长,则会得到一个可以处理的异常。

第二种可能性是为Oracle用户设置超时。如果Web应用程序通过共享用户(应该是这样)连接到数据库,则可以使用ALTER user设置用户配置文件,该配置文件将强制执行最大CPU限制,这实际上是该用户发布的所有SQL统计信息的时间限制。

第二个解决方案的美妙之处在于,数据库强制执行规则,因此您不必担心应用程序代码中可能会漏掉一行。。。