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