On Fri, Sep 13, 2024 at 11:35 AM Wong, Kam Fook (TR Technology) <kamfook.wong@xxxxxxxxxxxxxxxxxx> wrote:
1) Where does query parsing occur?
Always on the server side, although your driver may do something as well.
2) Will this cause extra parsing to the posgress DB?
Yes
Any pg system table to measure parsing?
No
You want to send an array of values to the same query, so it can be prepared once, like so:
SELECT abc, efg
FROM docloc a
JOIN collection b USING (collection_name)
WHERE a.column1 = ANY($1)
AND a.stage_id = (
select max(stage_id) from collection_pit c
where c.collection_name = a.collection_name
and c.pid_id < $2 and c.stage_code = $3
);
Then you can always pass in three arguments, the first being an array of all the column1 values you want.
You might also want to get familiar with plan_cache_mode: https://www.postgresql.org/docs/current/sql-prepare.html
Cheers,
Greg