2009-08-14 4 views
1

Чтобы удовлетворить некоторые нечетные требования к бизнесу, мне придется реализовать свои собственные счетчики, подобные последовательности. Я собираюсь сделать первый шаг этого очевидным образом, но я хотел бы узнать немного больше о том, как Oracle реализует последовательности. Например, могут ли они использовать защелки вместо блокировок?Oracle: Как реализованы последовательности?

Мне не удалось найти много об этом в Интернете, поэтому указатели на документы, а также проницательность из вашего личного опыта приветствуются!

(10г RAC, если это имеет значение)

+0

Мне бы хотелось узнать нечетные требования к бизнесу, которые означают, что вы не можете просто использовать последовательности ... –

ответ

3

Я не думаю, что Oracle опубликовала внутреннюю работу последовательностей, но Джонатан Льюис написал несколько подробный анализ того, как они работают here. Из этого документа:

Поскольку механизм является внутренним Oracle является очень эффективным и обходит нормальный замок раздор , который появляется с традиционным конечного пользователя кодированного «скрижалью последовательности объектов в последовательности:» дайте мне следующий доступный номер 'и' напомните мне, что , что было снова '; это nextval и currval звонки соответственно.

NEXTVAL запрос ГОЕС в глобальный кэш, чтобы получить следующее доступное значение последовательности и копирует его на локальный памяти сессии.

1

Я думаю, вам нужно объяснить, почему вам нужно реализовать свою собственную последовательность. Если мы знаем проблему, которую вы пытаетесь решить, мы сможем дать вам ответ, поэтому вам не нужно будет выполнять свою собственную последовательность.

Смежные вопросы