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

Очень долго выполнялась бизнес-логика, когда пользователь CRM в странице редактирования Обращения пытается подгрузить шаблон письма. 
Запустил в SQL Profiler трасировку, выполнил действие, нашел.
Заметил, что Duration гораздо больше CPU + Reads, и нет никакого плана выполнения для такого запроса.
Сталкивался ли кто с подобной ситуацией? Какие меры предпринимали?
Я так понимаю, что рано или поздно данная ситуация возникает у всех, если развивать СРМ с куча интеграций и т.п., получения обращений в систему с 5 почт, подключением сотрудников в количестве от 30-48.
Ресурсов у сервера БД достаточно, 2 виртуалки, по 2 ТБ памяти, по 98 ГБ ОЗУ, процессор 2.4Ггц X 12 ядер.

Нравится

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

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

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

Или дело в какой-то глобальной блокировке на таблицу, наложенную одновременнно работающей другой логикой.

Не пробовали аналогичный запрос (естественно, с другим Id) запускать из Management Studio вручную, так тоже тормозит?

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

Да, это на добавление активности "Диагностировать  и решить инцидент ..." запись в трасировке, я забыл в описании указать. В следующий раз попробую через Management Studio выполнить запрос. Вот не знаю почему, но после добавления 2 индексов в SysCaseRight действия такие, как Отправка письма в обращении и т.д., переход между состояниями в кейсе страницы редактирования, стали работать быстрее заметно.

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

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

Да, он ускорился.

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

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

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

Добрый день!

 

Подскажите, пожалуйста, есть ли возможность запретить перенос длинного значения в колонке детали? Мне нужно, чтобы поле поле обрезалось и заканчивалось многоточием (пример креплю).

 

Сейчас все длинные текстовые поля выводятся целиком, с переносом строки, если они не влезают в ширину колонки (пример креплю).

 

Нравится

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

Что интересно, если открыть настройку колонок детали, то там в предпросмотре так, как Вы хотите.

По идее, нужно найти, какое свойство в CSS отвечает за такой перенос и заменить его значение. Сначала для пробы прямо в инструментах разработчика в браузере, чтобы сразу увидеть результат, потом уже вносить правки в схеме на вкладке для CSS.

Сходу нашёл, как смена стандартного word-wrap: normal на word-wrap: break-word; у [class*='grid-cols-'] меняет перенос по словам на перенос по буквам, но как сделать чтобы вообще без переноса, пока не нашёл. Может, у Вас выйдет.

Уже заведена и принята идея:

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

1. реестр раздела
2. списки в итогах

Но пока в планах на новые версии её нет.

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

Спасибо за мысль! Подумаю, что делать с этим))  Было бы здорово, если бы такая функция  появилась

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

Добрый день, всем. Очень долго выполняются запросы связанные с UpdateQuery, SelectQuery, InsertQuery. Кто-нибудь сталкивался с этим? Какие пути использовали, для нахождения проблемы?

Нравится

4 комментария
Лучший ответ

Для анализа запросов есть профайлер в mssql. Запускаете профайлере, делаете запрос из клиентской части. Смотрите какой sql для select получается в профайлере.

Еще может быть, что у вас тормозит обмен по websocket. Надо посмотреть в консоль разработчика в браузере, нет ли там ошибки с подключение к websocket.

И еще creatio требовательна к ресурсам, если вам кажется что все работает медленно, то стоит проанализировать производительность ваших серверов.

Для анализа запросов есть профайлер в mssql. Запускаете профайлере, делаете запрос из клиентской части. Смотрите какой sql для select получается в профайлере.

Еще может быть, что у вас тормозит обмен по websocket. Надо посмотреть в консоль разработчика в браузере, нет ли там ошибки с подключение к websocket.

И еще creatio требовательна к ресурсам, если вам кажется что все работает медленно, то стоит проанализировать производительность ваших серверов.

В profiler смотрел, запросы выполняются за доли миллисекунд.
Websocket работает отлично.
Запросы выполняются долго в момент переключения состояния Обращения, вот что заметил. Пока не отлаживал сам процесс перехода состояний, но может уже кто-то сталкивался с этим.

Саид Иманмагомедов,

При работе системы идет множество сложных запросов, если нет каких-то явных проблем с работой системы, значит надо наращивать мощности сервера под бд.

Вероятно, что в системе есть бизнес процесс, который срабатывает по сигналу и работает не в фоновом режиме, выполнение которого и приводит к длительному выполнению запросов InsertQuery и UpdateQuery.

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