pg_database_size очень медленно работает с Azure PostgreSQL
У меня очень странное поведение на сервере 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 занимает много времени...
Чтобы решить мою проблему, я вижу два варианта:
- Повысьте производительность запросов с помощью настроек Azure PostgreSQL Server.
- Заменить текущий запрос другим запросом с некоторым результатом
Я открыт для любых предложений. Пожалуйста, дайте мне какие-либо идеи о том, как я могу быстро и правильно читать размер БД.
1 ответ
Вот очень похожий sql, работает нормально прямо на postgresql
ВЫБЕРИТЕ pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) как размер ОТ pg_database; --- как вариант № 2?