gpt4 book ai didi

sql - scn 如何在 Oracle 中使用 sys.smon_scn_time 映射到时间戳?

转载 作者:行者123 更新时间:2023-12-04 23:48:52 24 4
gpt4 key购买 nike

在 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:
enter image description here

如您所见,此表中有 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中单个映射的结构列是:

  • 4 个字节用于 time_mp
  • 4 个字节用于 scn_bas
  • scn_wrp 的 2 个字节
  • “未知”的 2 个字节
  • 关于sql - scn 如何在 Oracle 中使用 sys.smon_scn_time 映射到时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45564047/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com