0

我最近在 Linux 服务器上部署了 PostgreSQL 数据库。
其中一个存储过程大约需要 20 到 24 秒。我也在空白数据库中执行了相同的存储过程(没有任何行返回),并且需要相同的时间。我发现由于聚合函数而出现缓慢。
在这里,如果我删除了函数ARRAY_TO_JSON(ARRAY_AGG(,那么结果将在第二秒内获取。

下面是我的代码片段:

 SELECT ARRAY_TO_JSON(ARRAY_AGG(ROW_TO_JSON(A))) FROM (
 select billservice.billheaderid,billservice.billserviceid AS billserviceid,.....(around 120 columns in select ).....
 )A;


解释执行计划:

在此处输入图像描述

以前我将 PostgreSQL 数据库部署到 windows 服务器,相同的存储过程只需要 1 到 1.5 秒。在这两种情况下,我都使用具有相同数据量的相同数据库进行了测试。并且两台服务器都具有相同的配置,例如 RAM,处理器。并且还具有相同的 PostgreSQL 配置。在 Linux 服务器中执行我的存储过程时,CPU 使用率达到 100%。
让我知道您是否有相同的解决方案。

4

0 回答 0