Всем привет. Столкнулся с такой проблемой:

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

Очень долго выполнялась бизнес-логика, когда пользователь CRM в странице редактирования Обращения пытается подгрузить шаблон письма. 

Запустил в SQL Profiler трасировку, выполнил действие, нашел.

Заметил, что Duration гораздо больше CPU + Reads, и не...ЕщеСвернуть

Нравится

9 комментариев

Саид, как видно со скриншота, это запрос на вставку в таблицу активностей записи с названием "Диагностировать и решить инцидент #...".

Вставка...ЕщеСвернуть

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

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

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

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

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

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

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

 
Заказчик выдвинул требования значительно ускорить быстродействие выполнения определенного функционала.

Для определения "узких" мест в функционале разработал набор методов (функций), которые позволяют измерять суммарное время на выполнение каждой функции и процентное отношение суммарного времени...ЕщеСвернуть

Нравится

Поделиться

1 комментарий

Нужна помощь советом в какую сторону нужно смотреть.

Реализовал импорт прайс-листа по продуктам указанного производителя. В начале импорта указывается производитель и выбирается Excel-файл прайс-листа этого производителя. В процессе импорта добавляются/обновляются продукты. Считывается строка из Excel-файла...ЕщеСвернуть

Нравится

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

Здравствуйте.

Да, Вам точно нужен индекс, т.к. и в GetOffering и в CheckHasDuplicate есть строки вида:
WHERE([tbl_Offering].[Article] = N'20237-179'

Именно...ЕщеСвернуть

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

Ничто так не "убивает" базу, как "плохое" индексирование (С)

Создать правильные индексы - это только половина дела. Нужно еще и правильно ими управлять.

В процессе работы с базой, особенно, если данные в ней довольно часто модифицируются/добавляются/удаляются, со временем индексы приходят в некоторую...ЕщеСвернуть

Нравится

Поделиться

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

Ничто не оптимизирует скорость работы базы так, как правильно подобранные индексы (С)

Многим, кто сталкивался с промышленной эксплуатацией баз данных определенных (скажем так, очень больших) размеров, приходилось проводить кропотливый анализ запросов на предмет возможной оптимизации скорости их выполнения...ЕщеСвернуть

Нравится

Поделиться

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

Почти в каждом COM-объекте Terrasoft есть методы по умолчанию. В описании интерфейса эти методы имеют нулевой id. Например, ComponentsByName в IWindow, Values в IDataset или ItemsByName в IDataFields и т.д.
А доступ к этим методам выполняется быстрее, если обращаться к ним именно как методам по умолчанию...ЕщеСвернуть

Нравится

Поделиться

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

Пишу кратко. Может кому-то следующая информация будет полезна и позволит сэкономить время.
Ниже я опишу как с помощью SQL Profiler я смог увидеть какие сервисы и в какой последовательности загружаются при запуске CRM с активным разделом - "Контрагенты". Также я смог получить информацию о времени потраченном...ЕщеСвернуть

Нравится

Поделиться

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

В бизнес процессах если используется задержка процесса по времени, то следующая задача после процесса не создается автоматически.
т.е. чтобы запустить задачу надо выполнить следующий шаг запущенного процесса.
Это не всегда удобно, т.к. таких процессов может быть запущенно огромное количество и пользователь не помнит, а может и не знает, что надо продолжить процесс.
Предлагается при окончании задержки выполнения процесса, чтобы автоматически запускалось окно создания задачи

Нравится

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

В базовой конфигурации такой функциональности нет, взгляните на наше расширение (http://community.terrasoft.ua/catalog/4881), возможно заинтересует.

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