pg_database_size 对于 Azure PostgreSQL 来说非常慢
pg_database_size is very slow for 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 服务器设置提高查询性能
- 将当前查询替换为具有某个结果的另一个查询
我愿意接受任何建议。
请给我任何关于如何快速正确地读取数据库大小的想法。
这里大同小异sql,直接在postgre上运行很好sql
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database; --- 作为选项 #2 ?
我在 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 服务器设置提高查询性能
- 将当前查询替换为具有某个结果的另一个查询
我愿意接受任何建议。 请给我任何关于如何快速正确地读取数据库大小的想法。
这里大同小异sql,直接在postgre上运行很好sql
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database; --- 作为选项 #2 ?