[PROJ] Performance when Auxilary DB used

Greg Troxel gdt at lexort.com
Mon Aug 31 09:53:20 PDT 2026


My quick impression is that sqlite is not dealing particularly well with
joins over views, and that I can't really fault it as this seems beyond
the scope of the main mission.

I wonder about using memoization as a main strategy here, where 
when proj is run with an auxiliary database, it checks the mtime of both
databases, and looks for a memoized merged database in ~/.cache/proj,
perhaps named with the aux path and both timestamps.  If so, use it, and
if not, remove old versions, do the merge and write it.

I suspect the first run will be a bit slow, but if proj is used a lot,
then subsequent runs should be fast and on balance a good result.   If
proj is only used once with the aux db, then it's unlikely to matter.

If someone has a use case where proj is used a large number of times
with a different aux db every time, that's interesting, but to me
unexpected.


More information about the PROJ mailing list