Проблема №1, которая встречается практически всегда при аудите - это запросы в циклах и
выборка, без указания конкретных полей в $arSelect.
Встречаются и более интересные случаи. Вот несколько примеров: Пример 1 Клиентом была запущена рекламная компания, вследствии чего трафик на сайт возрос. В самый пик заказы формировались каждые 1-3 минут. В публичной части стали проявляться небольшие "тормоза", а нагрузка на БД выросла значительно. Для анализа ситуации мы включили сбор SQL запросов. После изучения запросов был создан индекс для "b_sale_discount_entities". Результат: нагрузка на БД сократилась на 50%.
Пример 2 Многие модули Битрикс и решения из
http://marketplace.1c-bitrix.ru подписываются на события системы, тем самым замедляя работу сайта (и в публичной и в административной части). В данном примере, на сайте клиента было установлено большое количество модулей расчета доставки, но, по факту, использовались только два. Их в итоге и оставили, а остальные удалили. Также включили сбор SQL запросов и при их анализе составили список таблиц модулей, работающих на сайте. После сравнения этого списка с теми модулями, которые действительно необходимы - лишние были удалены. После всех этих действий удалось значительно сократить время отклика сервера.
Пример 3 На сайте клиента отправка форм происходила с большими задержками. Нами было проведено профилирование с помощью XHProf и мы достаточно быстро нашли функцию, которая отрабатывала за целых 2 секунды. После ее рефакторинга скорость отработки уменьшилась до 0,015 сек - тем самым была полностью восстановлена работоспособность форм.