如果运行超过 x 秒,SQL 查询返回一个值?

Posted

技术标签:

【中文标题】如果运行超过 x 秒,SQL 查询返回一个值?【英文标题】:SQL Query return a value if running more than x seconds? 【发布时间】:2017-02-01 10:18:05 【问题描述】:

如果 SQL 查询运行时间超过 X 秒,是否可以终止正在执行的查询并返回特定值(例如 return value = 1)?

您能否举一个带有基本查询的具体示例。例如在 SQL 中:

select * from test

如果这个查询的执行时间超过 10 秒,它应该返回:1 作为结果。

我正在使用 SQL 管理工作室。

【问题讨论】:

@a_horse_with_no_name :- 你能检查一下我的回答是否有效吗?? 你使用什么后端语言? 【参考方案1】:

是的,有可能。您可以使用线程

看看这里的一些例子

Can We use threading in PL/SQL?

【讨论】:

【参考方案2】:

您可以使用DBPROP COMMANDTIMEOUT 指定超时并在您的客户端上使用 TRY CATH,因为在 SQL 中,连接超时无法恢复。

【讨论】:

您的答案适用于哪个 DBMS? 申请SQL SERVER【参考方案3】:

我希望这对你有用..我已经为此设置了自定义逻辑..

declare @Starttime datetime=getdate()


select * into #tmp from test


if DATEDIFF(SECOND,@Starttime,getdate()) >10
begin
   select 1
end

【讨论】:

以上是关于如果运行超过 x 秒,SQL 查询返回一个值?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL慢查询开启日志分析(转)

目标 c - 运行代码块 X 秒,但如果条件满足则立即返回

Python:如果检测到 X 超过 T 秒:

MySQL调优之-慢查询日志

“确切的提取返回超过请求的行数”

SQL 视图或表