pg_database_size对于Azure PostgreSQL非常慢

时间:2018-09-30 18:31:31

标签: postgresql azure 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 需要很多时间...

要解决我的问题,我看到两个选项:

  1. 使用Azure PostgreSQL服务器设置提高查询性能
  2. 将当前查询替换为具有某些结果的另一个查询

我愿意接受任何建议。 请给我有关如何快速正确读取数据库大小的任何想法。

1 个答案:

答案 0 :(得分:0)

这里的sql非常相似,可以直接在postgresql上正常运行

选择pg_database.datname,pg_size_pretty(pg_database_size(pg_database.datname))作为pg_database的大小; ---作为选项2?