Что лучше: единая глобальная последовательность или последовательность в таблице - PullRequest
11 голосов
/ 15 октября 2011

В приложении JPA / Hibernate, использующем собственные последовательности Oracle, лучше использовать одну глобальную последовательность, например hibernate_sequence, или определить отдельную последовательность для таблицы?

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

Ответы [ 3 ]

13 голосов
/ 15 октября 2011

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

3 голосов
/ 23 января 2017

Одна последовательность означает отсутствие совпадающих идентификаторов в двух таблицах.На практике мне это нравится, потому что вы никогда не получите что-то, когда случайно запросите неправильную таблицу.Особенно полезно с удаляет.Это мелочь, но я считаю ее полезной.

1 голос
/ 15 октября 2011

Я бы порекомендовал вам использовать последовательность для каждой таблицы. Это просто немного чище в моей книге. Стандарт в моем текущем трудоустройстве - последовательность за столом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...