Последовательности Oracle не свободны от пробелов.Уменьшение размера кэша уменьшит разрывы ... но у вас все еще будут разрывы.Последовательность связана с таблицей не базой данных, а вашим кодом (через nextval на вставке через триггер / sql / pkg api) - на этом примечании вы можете использовать одну и ту же последовательность для нескольких таблиц (это не похоже наидентификатор сервера sql, где он связан со столбцом / таблицей)
, поэтому изменение последовательности не повлияет на индексы.
Вам просто нужно убедиться, что вы удалили последовательность иперезапустите его, вы «перезапуститесь» до +1 текущего значения (например, создать секвенсор последовательности, начинающийся с 125 nocache;)
, но
Если вашему приложению требуется пробел -свободный набор чисел, то вы не можете использовать последовательности Oracle.Вы должны сериализовать действия в базе данных, используя собственный разработанный код.
, но имейте это в виду, вы можете увеличить дисковый ввод-вывод и возможную блокировку транзакций, если решите не использовать последовательности.
Генератор последовательностей полезен в многопользовательских средах для генерации уникальных чисел без накладных расходов на дисковый ввод-вывод или блокировку транзакции.
для повторения комментариев a_horse_with_no_name, что является проблемой с пробелами в id?
Edit также посмотрите на логику кэширования, которую вы должны использовать, расположенную здесь: http://download.oracle.com/docs/cd/E11882_01/server.112/e17120/views002.htm#i1007824