scn如何使用sys.smon映射到时间戳
在Oracle DB中,您可以通过使用来了解上次更新表的时间
SELECT SCN_TO_TIMESTAMP(MAX(ora_rowscn)) from myTable;
(看这里)
ora_rowscn列中的值以系统更改编号(SCN)格式存储。
Oracle知道什么时间戳与使用sys.smon_scn_time表的特定scn相对应:
正如你所看到的,这个表中有scn,time_dp和其他一些列。 记录每5分钟(大约)添加sys.smon_scn_time。 所以在scn和日期之间没有单值关系。 但Oracle知道每个scn的时间戳。
那么,sys.smon_scn_time表如何工作?
以及Oracle如何映射时间戳以及此映射的准确性?
tim_scn_map
列是SCN映射的时间戳数组。 它的尺寸是RAW(1200)。 每个条目有12个字节。 这使得每行有100个条目,这导致约3秒的精确度,因为SMON过程每隔300秒创建一行。 另请参阅scn_to_timestamp函数的文档。
tim_scn_map
列中单个映射的结构是: