Как решать проблемы оптимизации быстродействия falcon приложения

Как прорабатывать ошибки замедления системы

В случае если ваше приложение работает корректно, но иногда возникают затупы приложения, попробуйте следующий порядок действий

1. смотрим as_perf

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

2. смотрим as_trace

Смотрим в первую очередь ошибки (code=exception). 

Также смотрим и другие типы записей. Отслеживаем частоту создания записей (может быть так что например код tg из за ошибки работы с телеграм создает по 5 записей в 1 секунду при обращении к серверу).  Смотрим прирост записей за сегодня, вчера и общее количество записей по типам. 

select code, count(*) totalCount,
	(select count(*) from as_trace t3 where t3.code=t1.code and cast(created as date) = cast(dateadd(day, -1, getdate()) as date) ) yesterday,
	(select count(*) from as_trace t2 where t2.code=t1.code and cast(created as date) = cast(getdate() as date) ) today
from as_trace t1
group by code

3. Смотрим Event Viewer на сервере. В нем могут быть системные ошибки, которые не попадают в базу. 

4. Ручная локализация проблемы

Делаем проход по основным страницам кабинета. Наша задача - найти страницу, после которой начинаются замедления. Дело может быть ли в sql самой странице, либо в том, что страница генерирует кучу сниппетов компонентов, которые затем массово инициализируются (например, если в строку таблицы вывести сниппет формы и поставить pagesize=100. В результате будет 100 параллельных запросов на сервер, что плохо).

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

Частые возможные проблемы

  • много однотипных запросов с каждой строки таблицы. Смотрите в консоли браузера какие запросы отправляются - если их очень много и они непрерывным потоком идут долго - вероятно ваша страница допускает множество подгружаемых элементов (форм) на каждую выводимую строку таблицы. Обновление Июнь 2021. Внедрили код отслеживания таких дублей запросов dblreq в as_trace 
  • плохой sql - оптимизируйте плохие запросы. Найти их можно через as_perf или через мониторинг выполняющихся запросов через SQL Profiler Express.
  • проблема с телеграм или др внешним вызовом (уведомления). Проверьте, что нет ошибок и уберите токен телеграма в web.config
  • тяжелые периодические sync процедуры. Не делайте очень тяжелых процедур каждые N секунд. Это будет постоянно грузить систему.
  • множественная ошибка почты. Проверьте, что при отправке почты не возникает исключений и она корректно отправляется через тестовую форму в панели управления.           
  • плохие запросы select к as_trace (и к другим большим таблицам). Находим самые большие таблицы в БД и анализируем запросы к ним.  

           

Falcon Space - функциальная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Веб-приложения на MS SQL. Партнерская программа для разработчиков и веб-студий

Вы можете разрабатывать самостоятельно или сотрудничать с нами в плане веб-разработки на платформе Falcon Space, используя только SQL и HTML.
Смотреть примеры с кодом SQL
Документация по платформе

Google поиск по нашей документации