Одинаковые планы PostgreSQL с использованием кэша, но с разной продолжительностью?

#java #benchmarking #postgresql-9.6

#java #сравнительный анализ #postgresql-9.6

Вопрос:

Когда я выполняю несколько запросов (для теста) Я получил этот график (один и тот же запрос выполнялся несколько раз), график показывает мне, что одно выполнение заняло больше времени, и это был не первый (ont-shot), вы можете мне помочь, пожалуйста?

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

введите описание изображения здесь

Комментарии:

1. Это действительно трудно сказать без гораздо большей информации. Задержка, возможно, была внешней по отношению к PostgreSQL, и в этом случае вам пришлось бы запрограммировать практически весь сервер, чтобы выяснить, что ее вызвало. Запрос в целом кажется довольно тяжелым (800 мс или около того даже для «быстрых» запросов), поэтому он использует много ресурсов (ввод-вывод, память или и то, и другое), предоставляя множество возможностей для возникновения некоторых сбоев.

2. Я использую большой кластер для выполнения этого запроса, проблема в том, что после этого запроса выполнение, похоже, использует кэш хорошо. Как я могу быть уверен, что проблема не связана с вводом-выводом или памятью. Потому что у меня сложилось впечатление, что когда процесс выполнения доходит до этой точки, процесс останавливается, но он использует тот же план?

3. Не уверен, что вы подразумеваете под «процесс остановлен». Но PostgreSQL, похоже, считает, что все эти запросы идентичны, поэтому проблема должна заключаться либо в некоторой внешней задержке, из-за которой выполнение одного из них занимает больше времени, либо в том, что в вашем кластере есть один сервер, который работает медленно (предполагая, что этот журнал включает результаты со всего кластера).

4. хорошо, си, я проверяю выполнение, и когда процесс доходит до проблемного выполнения, я вижу это: «postgres dtsc1 127.0.0.1 (46248) простаивает» и «postgres dtsc1 127.0.0.1 (46248) SELECT» для других исполнений?