1

我们公司正在使用 DB2,并且我们有一个调度程序(我无权访问),它每 5 分钟运行一组 SQL 文件。虽然我可以控制 SQL 语句

一个文件中的一条 SQL 每天只需要运行两次,而且它真的很重。因此,每 5 分钟运行一次会杀死系统。

因此我的问题/情况是,

  • 有没有一种聪明的方法来修改 SQL,以便它检查它是否在规定的时间段内,然后运行它。(即不执行逻辑,如果它在特定时间之外)?
  • 我无法将脚本或 if 循环作为纯 SQL。所以修改需要在数据操作语言(DML)语句中
  • 如果我只是简单地添加一个硬编码的时间参数,DB2 将执行逻辑然后进行时间检查。否则,将硬编码的时间参数放入 SQL 中会非常简单。

提前致谢

4

1 回答 1

2

尝试这样的事情。它首先获取当前时间戳,并将您的查询交叉连接到它。优化器将足够聪明地看到“ A”没有任何行,并且不会运行“ B”。

SELECT B.*
FROM (SELECT CURRENT TIME AS CTIME FROM SYSIBM.SYSDUMMY1) A
JOIN (...your_query...) B
  ON 1=1
WHERE A.CTIME BETWEEN '08:00:00' AND '09:00:00'
于 2013-05-23T13:03:22.077 回答