Oracle SEQUENCE - «приращение на» и «кэш» - PullRequest
0 голосов
/ 08 апреля 2019

Я использую JPA вместе с Hibernate для моего загрузочного приложения Spring. Я сталкиваюсь с некоторыми проблемами с производительностью вставки при выполнении массовых операций. На данный момент я нашел следующие исправления:

  1. Измените последовательность Oracle, обновите 'Increment by> 1, я даю 50'
  2. В объекте Java используйте allocationSize с тем же значением, что и у Oracle Increment By

Так что JPA не позволяет вызову получить следующую последовательность. Моя последовательность определяется как: CREATE SEQUENCE MYSCM.BOOKING_SCHED_SEQ INCREMENT BY 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 CACHE 20

Когда я увеличиваю INCREMENT BY до 50, следует ли увеличить кэш до 50 или уменьшить?

1 Ответ

3 голосов
/ 08 апреля 2019

Когда я увеличиваю INCREMENT BY до 50, следует ли увеличить кэш до 50 или уменьшить?

Ни того, ни другого.Между INCREMENT BY и CACHE нет никакой взаимосвязи.

INCREMENT BY контролирует монотонный аспект последовательности.С INCREMENT BY 50 серия проходит 1, 51, 101, 151 и т. Д.

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

Люди зациклены на установке значения CACHE, потому что они думают, что если этослишком высоко они могут «потерять» некоторые значения и иметь пробелы в своих рядахЭто крайне маловероятно, и даже если это произойдет, нам все равно.Последовательности являются источником гарантированных уникальных значений и не имеют дальнейшего значения.


Хотя, перечитав ваш вопрос, я не думаю, что это повлияет на производительность ваших групповых вставок.Почему вы решили сосредоточиться на распределении последовательности?Вы нашли какой-нибудь след, чтобы обнаружить узкое место?Вы говорили с вашим администратором?

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