Для получения sql-запроса из 3246 объектов уходит 11 секунд. В объекте (Account) 107 колонок, которые перебирает O(n^2) алгоритм. Итого получаем:
3246 * 107 * 107 = 37 миллионов итераций, что просто ужасно долго. Учитывая, как часто используется этот метод (каждый Save()), большая просьба подумать над алгоритмом и переписать его в будущих версиях :)
Понравилась ли вам эта идея?
Не совсем понимаю, зачем Вам для 3246 объектов (или 3246 раз для Account) вызывать эту функцию. Что Вы делаете со всеми полями всех объектов, добавляете в параметры?
Не поможет ли тут какое-то кеширование?
Зверев Александр,
Напоминаю, эта функция вызывается неявно каждое сохранение в системе. Вы сохраните 100 сущностей - вызовете функцию 100 раз. Налицо глобальная деградация производительности в этом блоке.
Здравствуйте, Алекс!
Передали данное пожелание команде разработки для анализа возможности внесения такой оптимизации в будущих версиях продукта.