Почему запросы выполняются медленно

Выполнение запросов, ранее занимавшее десятки миллисекунд, вне­запно затягивается до нескольких секунд. Запрос для итогового отчета, на который прежде уходило несколь­ко секунд, теперь требует получаса. Есть несколько способов выяснить, что замедляет выполнение за­просов. Па любые вопросы типа «Почему сегодня все не так, как на прошлой неделе?» проще ответить, если в системе собирается статистика. Если задан параметр iog_temp_fiies, то создание временных файлов, размер которых в килобайтах превышает значение, присвоенное это­му параметру, отображается в стандартном логе PostgreSQL. Такие программы, как Cacti или Munin, предназначенные для мо­ниторинга основных характеристик сервера, помогают узнать, что изменилось в последнее время, и соотнести данные об изменениях с наблюдаемой производительно­стью некоторых операций в базе данных.
Также история статистических данных из таблиц pg_stat_, соби­раемая ежедневно, ежечасно, даже каждые пять минут, если позволяют ресурсы, очень полезна для обнаружения вероятных причин внезап­ных изменений или постепенного снижения производительности. Еще лучше применять оба способа сбора статистики. Если не при­меняется ни один, то вопрос ставится иначе: «Почему этот запрос вы­полняется медленно?» Но не отчаивайтесь — есть способы восстановить производитель —
Есть еще несколько распространенных проблем. Если первоначальное тестирование проводилось на почти пустых та­блицах, вполне возможно, что запрашивается намного больше дан­ных, чем необходимо. Пример: если выбрать все данные пользователей, а показать лишь для первых десяти, то такой запрос выполняется очень быстро, ког­да одному пользователю соответствует 10 или 50 записей, но гораздо медленнее, когда этих записей 50 ООО. Старайтесь включать в запросы лишь необходимые данные; ис­пользуйте оператор limit для ограничения возвращаемых прило­жению данных.



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

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