Показать сообщение отдельно
Старый 28.01.2011, 09:55   #1  
kostass is offline
kostass
Участник
 
37 / 13 (1) ++
Регистрация: 27.08.2009
Адрес: Владимир
Еще раз о переименовании номенклатуры (ItemID).
Доброго времени суток!

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

Я снял трассировку переименования ItemID с помощью профайлера сиквела. Длительность процесса переименования колебалась в пределах 1 час 20 минут - 2 часа. Снял трассировку переименования вновь созданной номенклатуры, те же временные показатели. Все трассировки снимал в монопольном режиме на тестовой системе, т.е. в базе работал только один пользователь. В итоге: обрабатывается 164 запроса по 141 таблице.
Проблема в том, что номенклатурный справочник привязан к виртуальной компании, а в ней объединено 7 компаний, поэтому апдейты по большинству таблиц обрабатываются по 7 раз (в каждой компании). Итого 914 запросов, конечно, из них есть 49 самописных таблиц . При запуске в рабочей системе процесс переименования блокирует пользователей.

Может имеет смысл написать идентичный запрос, тупо скопировав все запросы из профайлера, и запустив его на сиквеле?
Фокус в том, что все запросы сверху объединены общей транзакцией для отката, и даже если в данный момент процесс переименования не апдейтит таблицу в которую вносят данные пользователи, но она в общем списке таблиц на переименование, пользователи блокируются и ждут.
Как бы блокировать пользователей только в пределах одной – трех таблиц?
__________________
Axapta 3.0 SP6