Долгое выполнение актуализации ролей при синхронизации с LDAP
Добрый день! Перерабатываю синхронизацию с LDAP. Заказчик требует выполнять раз в сутки полную синхронизацию и чуть ли не каждые 15 мин частичную. То есть при частичной только добавление новых пользователей и обновление измененных в течении последних 15 мин. После синхронизации в штатной реализации выполняется процедура актуализации ролей. Эта процедура вызывает хранимую процедуру tsp_ActualizeAdminUnitInRole, которая в свою очередь вызывает хранимую процедуру tsp_GetAdminUnitList. На 50000 пользователях эта хранимая процедура выполняется слишком долго (перекрывает 15 минут). Хотелось бы понять, что делает tsp_ActualizeAdminUnitInRole, в чем ее назначение? Если пользователи просто добавляются в группу "All Employees" и еще в одну, вложенную в "All Employees", возможно ли отключить вызов ХП tsp_ActualizeAdminUnitInRole при частичной синхронизации и вызывать только обновление кэша SysAdminUtilities.ReloadSysAdminUnitsCache?
Нравится
Михаил, судя по коду этих функций, первая для каждого пользователя чистит таблицу SysAdminUnitInRole от старых записей и добавляет заново значения, сформированные во второй.
По словам разработчиков, актуализацию переделали на версии 7.17.1, там она работает на порядок быстрее.
Они рекомендуют обновиться до версии 7.17.1+.
Учтите только при разработке своей интеграции, что новая логика уже не использует эти хранимки, то есть их прямой запуск Вам не подойдёт.