что произошло, если последовательность была доступна одновременно (даже в миллисекундах) несколькими пользователями. Будет ли это мертвый замок или Oracle иметь какой-то механизм?как последовательность поддерживает параллелизм в oracle
Я имею в виду, если пользователи A и B запросили у nextval
от squence1
в то же время, они приобретут такое же значение или повесят.
Согласно this blog, это говорит
Параллельный доступ NEXTVAL на последовательности всегда будет возвращать отдельные значения для каждого абонента. (Если последовательность не была настроена для цикла значений - в этом случае возможны повторяющиеся значения).
Они ** гарантированы ** для генерации различных значений. Внутренне они защищены механизмом синхронизации памяти (который намного легче, чем блокировка на уровне базы данных) –
, пожалуйста, проконсультируйтесь с некоторыми примерами. Я действительно ценю – Ravi
Извините, у меня нет исходного кода Oracle, поэтому я не могу приведите пример. Вам просто нужно доверять руководству здесь (и тому, что это работает уже более 30 лет). Возможно, вам захочется прочитать книгу Тома Ките «Экспертная база данных Oracle Database», в которой подробно описываются различные стратегии синхронизации. –