暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 强制查询超时

askTom 2016-07-11
301

问题描述

我有几个PL/SQL存储过程报告,它们监视我们数据库环境的各个方面 (ASM,表空间,备份,警报,...)。这些都具有相同的框架,循环通过表中的条目,使用db_link,查询远程系统,将查询结果写入表,并在查询完所有DBs之后,使用结果表中找到的条目发送电子邮件 (UTL_SMTP包)。当所有的DBs/服务器都启动/通信时,这工作正常,但由于其中一个DBs的问题,报告通常会挂起,不会生成异常,但查询不会终止。有没有一种方法可以设置特定于此报表查询的超时值,从而强制查询以预设限制终止?

开始
循环
query_remote_DB(db_name,db_link,error_code); -- 这个例程中的异常处理程序处理查询超时
结束循环;
结束;

专家解答

不确定这是否会在查询 “运行bug挂起” 时起作用,但请查看资源管理器,它具有CANCEL_SQL指令来取消长时间运行的查询。

这里有一些易于遵循的说明

https://www.pythian.com/blog/oracle-limiting-query-runtime-without-killing-the-session/


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论