0

最近、Linux サーバーに PostgreSQL データベースをデプロイしました。
ストアド プロシージャの 1 つに約 20 から 24 秒かかります。空のデータベースでも同じストアド プロシージャを実行しましたが (行が返されません)、同じ時間がかかっています。集計関数が原因で遅延が発生することがわかりました。
ここで関数ARRAY_TO_JSON(ARRAY_AGG(を削除すると、結果は1秒以内にフェッチされます。

以下は私のコードスニペットです:

 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