Google Cloud SQL - расшифровка журнала Postgres и просмотр временного файла журнала - PullRequest
0 голосов
/ 13 июня 2019

У меня есть экземпляр Postgres, работающий на Google Cloud SQL.У меня возникли проблемы с расшифровкой сообщений в онлайн-приложении «Просмотр журналов».

Я получаю множество сообщений уровня «информация», которые выглядят так, повторяются снова и снова.

[i] 2019-06-12 16:19:05.376 MDT [119402]: [2-1] db=cleanchemidata,user=cleanchemiadmin STATEMENT: SELECT MAX("cc_systemdataview"."time_stamp") AS "time_stamp__max" FROM "cc_systemdataview" WHERE "cc_systemdataview"."job_id" = 72
[i] 2019-06-12 16:19:06.213 MDT [119401]: [1-1] db=cleanchemidata,user=cleanchemiadmin LOG: temporary file: path "base/pgsql_tmp/pgsql_tmp119401.0", size 38330368

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

Я не понимаю, почему этот оператор выбора печатается в журнале (ноникаких других операторов SQL из моего приложения нет).Это не похоже на ошибку?

Временный файл журнала по пути "base / pgsql_tmp / pgsql_tmp119401.0" может иметь ответы, но я не могу понять, как получить к нему доступ.Я пытался открыть «облачную оболочку» и перемещаться по файловой системе, но не могу найти эту папку «base» или «pgsql_tmp» или какие-либо файлы журналов.

Любые идеи о том, почему отображается это сообщение STATEMENT,или как получить доступ к этому временному файлу журнала?

1 Ответ

1 голос
/ 14 июня 2019

Согласно следующей ссылке для мониторинга производительности PostgreSQL:

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

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

Вы можете найти более подробную информацию, а также рекомендуемые действия по предоставленной ссылке.

Я не знаком с вашими ограничениями БД, но я бы хотел оптимизировать этот запрос, поскольку запросы, которые не используют временные файлы, обычно работают лучше.

Что касается доступа к файлу журнала, к сожалению, в настоящее время вы не можете просматривать временные файлы, поскольку Cloud SQL - это полностью управляемая служба . Единственный способ визуализации журналов - ведение журнала Stackdriver, как описано здесь .

Важно понимать, что Cloud Shell сам по себе является временным экземпляром виртуальной машины. Его основная цель - упростить управление проектами и ресурсами без установки Google Cloud SDK. Его содержимое не имеет отношения к файловой системе экземпляра Cloud SQL, поэтому вы не видите упомянутые вами каталоги.

...