Hi
Yes we can solve this with more divide and conquer working but it's complicating thing a lot. I basically do partitioning now by splitting Postgis Topology up many hundreds and sometime many thousands off different topologies, but there is a limit to how much
I can split up and later merge because this also has a cost.
So the main issue seems to be related to dead rows. We have samples of queries like this 'SELECT node_id,geom FROM node WHERE containing_face = 0;' going from 2008.947 ms to 0.072 ms, when we did a commit on an unrelated job so xmin did not block removal
off dead rows. Here is also some more info
https://gitlab.com/nibioopensource/resolve-overlap-and-gap/-/issues/67 .Doing anlayze just before the query does not help, the only thing that seems help is get read off rows marked as "
DETAIL: 195929 dead row versions cannot be removed yet, oldest
xmin: 3475136501 "
Seen from the outside I am not asking for redesign 🙂just a parameter to test forced removal of dead rows when working on unnlogged tables and running vacuum from command line, but may seem to be more complicated than I was hopeing.
Thanks.
Lars
|