Как работает SCN_TO_TIMESTAMP? - PullRequest
1 голос
/ 10 ноября 2008

Кодирует ли сам SCN временную метку или это поиск из какой-то таблицы.

Из сообщения AskTom он объясняет, что отметка времени до +/- 3 секунды хранится в необработанном поле в smon_scn_time. Это где функция собирается получить значение?

Если так, когда этот стол очищается, если вообще? Если это так, что вызывает эту очистку?

Если это так, делает ли это невозможным перевод старых SCN в метки времени?

Если это невозможно, тогда исключается любое использование этого поля в долгосрочной перспективе (читай: одитинг).

Если я добавлю эту функцию в запрос, будет ли присоединение к этой таблице быстрее?

Если так, кто-нибудь знает, как скрыть этот столбец Raw?

1 Ответ

3 голосов
/ 10 ноября 2008

SCN не кодирует значение времени. Я считаю, что это автоинкрементное число.

Я бы предположил, что SMON вставляет строку в SMON_SCN_TIME (или любую другую таблицу, лежащую в основе) каждый раз, когда он увеличивает SCN, включая текущую временную метку.

Я запросил минимальную записанную метку времени в нескольких базах данных, и все они возвращаются примерно на 5 дней и имеют в таблице чуть менее 1500 строк. Так что это меньше, чем время жизни экземпляра.

Я предполагаю, что нижняя граница того, как долго хранятся данные, может быть определена параметром DB_FLASHBACK_RETENTION_TARGET, который по умолчанию равен 1 дню.

Я бы порекомендовал использовать функцию, они, вероятно, предоставили ее, чтобы они могли менять внутреннее устройство по желанию.

Понятия не имею, что содержит столбец RAW TIM_SCN_MAP, но появятся столбцы TIME_DP и SCN, чтобы дать вам отображение.

...