Суть проблемы в том, что после того как функция будет создана, первые пять раз запрос выполняется быстро, но потом производительность резко падает.
Ниже описано решение.
I have this plpgsql function (running PG 14.5 on UBUNTU 18.04 with 8GB Ram) which returns 200 rows just fine:
db=# explain (analyze,buffers) Select * from f_client_getlistasshown('{"limit":"200","startdate":"2014-01-01","enddate":"2100-01-01","showRequiresActionFromTaxadvisor":false}'); -------------------------------------------------------------------------------------------------------------------------------- Function Scan on f_client_getlistasshown (cost=0.25..10.25 rows=1000 width=400) (actual time=69.515..69.529 rows=200 loops=1) Buffers: shared hit=8939 dirtied=1 Planning Time: 0.066 ms Execution Time: 70.282 ms (4 rows)Читать далее «PostgreSQL: Performance of function call degrades after calling 5 calls in a row»