0

我想知道 Cache Intersystems DB 表的最后更新时间。请让我知道相关命令。我浏览了他们的命令文档:

http://docs.intersystems.com/latest/csp/docboo/DocBook.UI.Page.cls?KEY=GTSQ_commands

但我在那里没有看到任何这样的命令。我也尝试通过这个搜索:

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_currenttimestamp

这不是命令的完整文档吗?

4

1 回答 1

1

默认情况下,缓存'不维护“最后更新”信息,因为它可能会对 DML 操作造成不必要的性能损失。

您可以手动将此字段添加到每个感兴趣的表中:

Property LastUpdated As %TimeStamp [ SqlComputeCode = { Set {LastUpdated}= $ZDT($H, 3) }, SqlComputed, SqlComputeOnChange = (%%INSERT, %%UPDATE) ];

这样,它将保留每一行的最后一次更新/插入的时间,但它仍然无法帮助您删除。

或者 - 您可以为每个 DML 操作设置触发器,将时间戳保存在单独的表中。

如果没有额外的编码,收集此信息的唯一方法是扫描日志文件,这并不是真正打算用于这些文件,而且充其量也很慢。

于 2016-08-18T11:23:48.373 回答