Я нашел пробел в 18 номеров в моей последовательности оракулов, появившихся во время праздников, и не обнаружил следов этого преступления в файлах журналов. Могу ли я как-нибудь увидеть время обновления последовательности или любой другой способ отслеживания исчезновения порядковых номеров?Когда последовательность была обновлена oracle
ответ
Как и в других ответах/комментариях, последовательности никогда не гарантируются как свободные пробелы. Пробелы могут произойти во многих отношениях.
Одна из вещей о последовательностях заключается в том, что они по умолчанию равны CACHE 20
. Это означает, что, когда NEXTVAL
называется последовательность в базе данных фактически увеличилась на 20, то возвращается значение, и последующие 19 значения только что вернулись из памяти (общий бассейн.)
Если последовательность израсходованного из общего пула, или общий пул сбрасывается или база данных перезапускается, значения, «оставшиеся» в кэше памяти последовательности, теряются, так как последовательность следующего раза берет значение из базы данных, что на 20 больше, чем последний раз.
Как вы заявляли, что это произошло во время каникул, я полагаю, что это была вероятная причина того, что ваша последовательность использовала 2 значения из памяти, затем администратор базы данных выполнял техобслуживание в праздники, что привело к сбросу общего пула, а остальные 18 значений в кеше последовательности памяти пропало.
Это нормальное поведение и причина, по которой последовательности работают быстро. Вы можете получить «ближе» к свободному от нуля NOCACHE NOORDER
, но это будет стоить производительности и никогда не будет достаточно разрывом в любом случае.
Последовательность оракулов NOORDER
по умолчанию. обратитесь к документации оракула https://docs.oracle.com/cd/B13789_01/server.101/b10759/statements_6014.htm. следовательно, поведение NOORDER
не может быть таким, как ожидалось. Вы можете проверить, находится ли ваша последовательность оракулов в ORDER
, если нет, то это еще одна проблема.
Последовательность не гарантирует получение свободной последовательности цифр. Он используется для создания серии (уникальных) чисел, которые очень масштабируемы в многопользовательской среде.
Если вашему приложению требуется, чтобы какой-то числовой идентификатор в таблице был последовательным без пробелов, вам понадобится другой способ генерации этих идентификаторов.
- 1. даты, когда процедура была обновлена до
- 2. Как узнать, когда была обновлена таблица MySQL?
- 3. Последнее время Среда была обновлена
- 4. Обнаружение, когда удаленная отслеживаемая ветвь была обновлена силой в Git
- 5. Как узнать, когда последняя таблица mySQLi была обновлена?
- 6. Как узнать, когда привязка была обновлена по свойству зависимостей
- 7. Показать случайную связь, когда мой веб-страница была обновлена
- 8. TSQL, чтобы увидеть, когда статистика была обновлена последним
- 9. Есть ли способ показать, когда таблица была обновлена / создана?
- 10. Как узнать, когда определенная таблица была создана в Oracle?
- 11. Как определить, была ли обновлена сущность NHibernate.
- 12. Зная, была ли обновлена рабочая версия SubVersion
- 13. Шестнадцатеричная последовательность в Oracle
- 14. Обнаруживать, если строка была обновлена или вставлена
- 15. Проверьте, была ли определенная ячейка обновлена excel
- 16. MySQL: Сколько минут назад была обновлена БД?
- 17. Строка StaleObjectstateException была обновлена или удалена
- 18. Oracle: временная метка, когда была создана схема?
- 19. Oracle: когда моя таблица была изменена?
- 20. Последовательность Oracle не генерирует
- 21. Oracle FIRST_VALUE последовательность
- 22. Определить, когда последовательность чисел была нарушена в R
- 23. Программа разбилась, когда была изменена последовательность объявлений переменных
- 24. Таблица обновлений ORACLE TRIGGER, если другая обновлена
- 25. Oracle последовательность PL-SQL
- 26. Последовательность Oracle и курсор
- 27. Oracle-подобная последовательность в Linux?
- 28. Знаете, обновлена ли запись в Oracle?
- 29. Предыдущая активность не была обновлена после запуска другого действия
- 30. Показать, какая запись была обновлена с помощью триггера
Возможно, эти 18 записей были удалены ?. Если бы у вас был какой-то триггер аудита на этой таблице, вы могли бы это решить. Почему это «преступление»? – toddlermenot
Зазор в порядковом номере не является проблемой. Вы можете игнорировать это. Значения, генерируемые последовательностью, совершенно бессмысленны, и не имеет значения, используете ли вы значение 42,60,4546, -35345 или 632023485 –