В моей организации сотни таблиц DB2, каждая из которых имеет случайно генерируемый уникальный целочисленный индекс. Случайные значения генерируются либо с помощью мэйнфреймов COBOL CICS, либо из распределенных приложений Java. Обычный подход - случайное генерирование целочисленного значения (используются только положительные значения), затем попытка вставить строку данных, повторить попытку, когда значение повторяющегося индекса уже сохранено. Я хотел бы улучшить производительность этого подхода, и я подумываю о попытке определить целые значения, которые не были созданы и сохранены для каждой таблицы, это будет означать, что нам не нужно повторять попытку. Мы бы знали, что наша вставка будет работать. Есть ли функция db2, которая может возвращать неиспользуемые значения индекса?DB2 v10 zos: определение свободных значений индекса
ответ
Короткий ответ: нет.
Несколько более длинный ответ заключается в том, чтобы указать, что, если бы такая функция существовала, в вашем случае на первой вставке в одну из ваших таблиц размер возвращаемого результата будет равен 2,147,483,647 (позитивные) целые числа. При каждом 4 байтах это будет 8 589 934 588 байт.
Учитывая ограничения существующей системы, то, что вы делаете, вероятно, является лучшим, что можно сделать. Если выполнение повторной попытки неприемлемо, я боюсь, что перестройка вашей ключевой схемы - это следующий шаг.
Я думаю, что это вопрос, который нужно задать: Является ли эта схема использования случайных чисел для уникальных ключей, вызывающих проблемы с производительностью? Поскольку таблицы заполняют ключевое пространство, вы увидите все больше повторений, но у вас относительно большое ключевое пространство. Если вы видите большое количество повторений, возможно, ваши случайные числа менее случайны, чем вам хотелось бы.
cschneid, спасибо, что посмотрели на мою проблему; Мое решение было так; я). порождать нижний предел как случайное положительное целое число. II). вычислить верхний предел, добавив постоянную X (например, 50) к моему случайному нижнему пределу. III). заселите java ArrayList
просто мысль, но вы можете использовать одну последовательность для группы таблиц. Таким образом, значение будет по-прежнему произвольным (потому что вы не знаете, к какой из следующих таблиц вы вставляете), но на основе определенной последовательности, означающей, что большую часть времени вы не будете повторять попытку, потому что число продолжает расти. тот же Sequance может зацикливаться после нескольких hunderd миллионов вставок и начать «заполнять пробелы».
Что касается других ключевых идей, вы также можете попробовать использовать другой ключ, возможно, один на основе Timestamp или Rowid. это все равно будет случайным, но не повторяющимся.
- 1. DB2 V10 zOS JDBC Получение SQLCODE -302
- 2. DB2 ZOS Струнный Сравнение Проблема
- 3. DB2 V9 ZOS - Настройка производительности
- 4. Поддерживает ли Flyway DB2 для zOS?
- 5. DB2 для таблицы каталогов zOS для схем?
- 6. Невозможно подключить DB2 Zos с bluemix, используя облачную интеграцию
- 7. DLL zOS dynamic
- 8. DB2 определение триггера
- 9. Как идентифицировать удаленную рабочую нагрузку типа 4 JDBC для IBM Mainframe zos DB2
- 10. Создание составного индекса в DB2
- 11. Получить столбцы индекса в DB2
- 12. Определение генерации идентичности в DB2
- 13. Определение столбцов индекса
- 14. Определение немедленного индекса
- 15. Определение индекса вставки
- 16. Динамическое связывание в zOS
- 17. GoldenGate версия 12 установка/обновление на zOS
- 18. DB2
- 19. Определение свободных временных интервалов на основе двух таблиц в MySQL
- 20. Мое определение для свободных переменных не выполняется должным образом
- 21. Определение того, что Exp 'e' закрыто на основе свободных переменных?
- 22. Определение индекса с помощью XPath
- 23. jQuery selector: определение индекса массива
- 24. Определение дочернего индекса элемента Nokogiri
- 25. использование индекса над функцией SUM в DB2
- 26. Анализ состояния индекса TCB для DB2
- 27. Язык без свободных переменных
- 28. возможно ли это значение перезаказа DB2 Zos v8 Таблицы строк в столбцы
- 29. Есть ли CRC32 или другая хеш-функция в DB2 для zOS?
- 30. Динамическое определение значений атрибутов
Похоже, что вам следует изучить ['sequence'] (http://www-01.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.intro/src/ TPC/db2z_sequences.dita). – bhamby
bhamby, спасибо, что посмотрели на это, однако последовательности не являются приемлемым решением. он должен быть случайным, а последовательности - инкрементальным – Hector