pg_database_size очень медленно работает с Azure PostgreSQL - PullRequest
0 голосов
/ 30 сентября 2018

У меня очень странное поведение на сервере Azure PostgreSQL.

Я пытаюсь прочитать размер БД, используя следующий запрос:

SELECT CAST(pg_database_size(current_database()) * 1.0/(1024 * 1024) AS DECIMAL(12, 5))

Но этот запрос выполняется очень долго, и у меня исключение тайм-аутав моем приложении C #:

Exception while reading from stream; Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

Понятия не имею, почему pg_database_size занимает много времени ...

Чтобы решить мою проблему, я вижу два варианта:

  1. Повышение производительности запросов с помощью настроек Azure PostgreSQL Server
  2. Заменить текущий запрос другим запросом с некоторым результатом

Я открыт для любых предложений.Пожалуйста, дайте мне какие-либо идеи о том, как быстро и правильно читать размер БД.

1 Ответ

0 голосов
/ 30 сентября 2018

Здесь очень похожий sql, отлично работает прямо на postgresql

SELECT pg_database.datname, pg_size_pretty (pg_database_size (pg_database.datname)) AS size FROM pg_database;--- как вариант № 2?

...