En regardant votre plan d'exécution de requête, beaucoup de temps est consacré au tri
"Sort (cost=18.01..18.01 rows=1 width=86) (actual time=541075.198..541099.504 rows=65354 loops=1)"
" Sort Key: r.resource_id, s.start_date"
" Sort Method: external merge Disk: 8016kB"
Je vous recommande d'augmenter work_mem paramètre pour PostgreSQL
comme décrit ici