Я недавно развернул базу данных PostgreSQL на сервере Linux.
Одна из хранимых процедур занимает от 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 секунды. В обоих случаях я тестировал одну и ту же базу данных с одинаковым количеством данных. а также оба сервера имеют одинаковую конфигурацию, как ОЗУ, процессор. И также имеют такую же PostgreSQL конфигурацию. При выполнении моей хранимой процедуры в Linux загрузка ЦП сервера достигает 100%.
Дайте мне знать, если у вас есть какое-либо решение для того же.