Как найти запросы замедляющие работу сервера

Иногда сам по себе запрос выполняется не слишком медленно, но, запускаясь сотни или тысячи раз, замедляет сервер. Эти запросы не отразятся в логах, если включить легирование медленных запросов, и все-таки есть способы их обнаружить. Будем повторять запрос: Если в список часто попадает один и тот же запрос, но значение Running_for Мало, вполне вероятно, что этот запрос использует много ресурсов и по крайней мере частично снижает общую нроизводитель Можно собрать такую статистику, выполнив консольную команду: Через несколько секунд можно остановить выполнение команды нажатием Ctrl+C и посмотреть на отсортированный результат: Запрос может быть сначала подготовлен, а затем выполнен, и что­бы найти его, нужно соотнести команду prepare, используемую для подготовки запросов, с командой execute, предназначенной для вы­полнения подготовленных запросов. Это можно сделать, настроив PostgreSQL для легирования всех запросов и добавив в параметр iog_iine_prefix в конфигурационном файле либо идентификатор процесса, либо идентификатор се­анса. Тогда, найдя медленно выполняемую команду execute, вы сможете найти соответствующую ей команду prepare. Более подробную информацию об анализе запросов можно найти в конце главы 8. Пакет со схожими функциями для сбора статистики можно найти по адресу: Команды SQL могут выполняться медленно по разным причинам. Ниже приводится краткий список этих причин и как минимум один способ обнаружения каждой из них. Запускайте запрос с префиксом Explain analyze, Чтобы увидеть объ­ем обрабатываемых данных, как в следующем примере:



Рубрика: Женский интерес

Комментарии закрыты.