Postgres: запрос материализованных представлений занимает больше времени - PullRequest
0 голосов
/ 25 апреля 2019

Я новичок в использовании Postgres, и у меня есть вопрос, касающийся материализованных представлений.В настоящее время я использую Postgres 9.6.0 и PGAdmin 4.

У меня есть запрос, который состоит из нескольких объединений, и когда он выполняется в PGAdmin, он занимает приблизительно 13 секунд.Это верно, учитывая, что установлены правильные индексы.

Следующий подход заключается в использовании материализованных представлений.Используя материализованные представления и устанавливая соответствующие индексы, я бы предположил, что выполнение запроса будет намного быстрее, учитывая, что данные будут кэшированы / временно сохранены.Однако после выполнения запроса это выглядит так, как будто оно все еще занимает 13 секунд .....

Если мое понимание материализованных представлений неверно, кто-то может объяснить, почему выполнение материализованного представления займет столько же времени, сколько и выполнениезапрос.Может ли это быть PGAdmin причиной этой проблемы?Или в Postgres есть настройка, которую необходимо установить, чтобы данные были постоянными в материализованном представлении?

Любой совет приветствуется.Спасибо.

1 Ответ

1 голос
/ 26 апреля 2019

Это ожидаемое поведение для простого случая.Это означает, что материализованное представление, являющееся результатом запроса к индексам, работает точно так же, как индексы, из которых оно было получено.Это имеет большой смысл, если вы об этом думаете.

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

В этом случае вы обнаружили, что базовый запростак же хорошо, как материализованное представление для того же набора данных.Возможно, вы захотите рассмотреть простое представление для этого случая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...