Ускорение GetSqlText();

Для получения sql-запроса из 3246 объектов уходит 11 секунд. В объекте (Account) 107 колонок, которые перебирает O(n^2) алгоритм. Итого получаем:

3246 * 107 * 107 = 37 миллионов итераций, что просто ужасно долго. Учитывая, как часто используется этот метод (каждый Save()), большая просьба подумать над алгоритмом и переписать его в будущих версиях :)

 

Изображение удалено.

3 комментария

Не совсем понимаю, зачем Вам для 3246 объектов (или 3246 раз для Account) вызывать эту функцию. Что Вы делаете со всеми полями всех объектов, добавляете в параметры?

Не поможет ли тут какое-то кеширование?

Зверев Александр,



Напоминаю, эта функция вызывается неявно каждое сохранение в системе. Вы сохраните 100 сущностей - вызовете функцию 100 раз. Налицо глобальная деградация производительности в этом блоке.

Здравствуйте, Алекс!

Передали данное пожелание команде разработки для анализа возможности внесения такой оптимизации в будущих версиях продукта.

Показать все комментарии