SAPфорум.RU
https://www.sapboard.ru/forum/

Объект блокировки для таблицы с большим ключом
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=81057
Страница 1 из 1

Автор:  MaaLL [ Пн, фев 11 2013, 14:50 ]
Заголовок сообщения:  Объект блокировки для таблицы с большим ключом

Добрый день,

Подскажите, можно ли создать объект блокировки для таблицы, ключ которой больше 300 байт?
Мне постоянно выдает ошибку DI776.

Автор:  vahtang [ Пн, фев 11 2013, 15:25 ]
Заголовок сообщения:  Re: Объект блокировки для таблицы с большим ключем

Предлагаю расчитывать по ключу какой-либо хэш (например MD5), и в ФМ блокировки передавать его.
Для этого есть ФМ CALCULATE_HASH_FOR_CHAR.

Автор:  MaaLL [ Пн, фев 11 2013, 16:06 ]
Заголовок сообщения:  Re: Объект блокировки для таблицы с большим ключем

Проблема в том, что ФМ блокировки не генерируются, так как объект просто не активируется, если длинна ключа в таблице больше!

Автор:  trop [ Пн, фев 11 2013, 20:07 ]
Заголовок сообщения:  Re: Объект блокировки для таблицы с большим ключем

так блокирует то логически, т.е. ,как вариант для простого случая, можете создать объект блокировки на любую другую таблицу с нужным ключом, или изменить ф/м и вызовы под свои нужды

можете показать здесь свой длинный ключ?

Автор:  Удав [ Пн, фев 11 2013, 21:19 ]
Заголовок сообщения:  Re: Объект блокировки для таблицы с большим ключем

MaaLL написал(а):
Проблема в том, что ФМ блокировки не генерируются, так как объект просто не активируется, если длинна ключа в таблице больше!

Так сделайте ключом для таблицы поле типа GUID или хэш, как предлагает vahtang . Зачем нужен такой длинный первичный ключ? :roll:

Автор:  Parazit [ Пн, фев 11 2013, 23:46 ]
Заголовок сообщения:  Re: Объект блокировки для таблицы с большим ключем  Тема решена

Создать структуру с одним хеш-полем и создать на нее (вместо таблицы) объект блокировки.

Автор:  Maksimus [ Пн, янв 16 2023, 06:47 ]
Заголовок сообщения:  Re: Объект блокировки для таблицы с большим ключем

Есть таблица с большим ключом, объект блокировки на нее создать не получается, но есть постоянные проблемы с ее обновлением: теряем записи при обновлении без блокировки. Таблица хранит больше сотни млн. записей, используется в большом количестве решений, в т.ч. смежным функционалом. Т.е. модифицировать ключ таблицы рискованно и трудозатратно. Может, посоветуете какие-то решения из практики?

Автор:  UKY [ Пн, янв 16 2023, 13:20 ]
Заголовок сообщения:  Re: Объект блокировки для таблицы с большим ключем

В голову приходит только создание другой новой структуры и делать блокировку для неё (например, чтобы блокировался целый блок из оригинальной таблицы), либо делать блокировку на уровне БД (SELECT SINGLE * FOR UPDATE), но это чревато производительностью, если программы будут долго и много блокировать записи.

Автор:  Kengur [ Пн, янв 16 2023, 19:19 ]
Заголовок сообщения:  Re: Объект блокировки для таблицы с большим ключем

Блокировку можно сделать на базе своей структуры. Длинный ключ изначально плохая идея. 3-4 поля с хорошей кардинальностью.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/