在 Oracle DB 中,您可以使用以下命令找出上次更新表的时间
SELECT SCN_TO_TIMESTAMP(MAX(ora_rowscn)) from myTable;
(see here)
ora_rowscn 列存储中的值 system change number (SCN)格式。
Oracle 使用 sys.smon_scn_time 表知道什么时间戳对应于特定的 scn:
如您所见,此表中有 scn、time_dp 和其他一些列。
记录每 5 分钟(大约)添加一次 sys.smon_scn_time。所以scn和date之间没有单值关系。但是 Oracle 知道每个 scn 的时间戳。
那么,sys.smon_scn_time 表是如何工作的呢?
Oracle 如何将 scn 映射到时间戳以及这种映射的准确性如何?
最佳答案
tim_scn_map
column 是时间戳到 SCN 映射的数组。它的大小是 RAW(1200)。每个条目有 12 个字节。这使得每行 100 个条目,这导致大约 3 秒的准确度,因为 SMON 进程每 300 秒创建一行。另请参阅 scn_to_timestamp 的文档功能。tim_scn_map
中单个映射的结构列是:
关于sql - scn 如何在 Oracle 中使用 sys.smon_scn_time 映射到时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45564047/