Pour votre requête, vous souhaitez un index sur xml_files("purchaseNumber", "docPublishDate" desc) :
create index idx_xml_files_2 on xml_files("purchaseNumber", "docPublishDate" desc)
Postgres devrait utiliser cet index pour le order by , ce qui facilite le distinct on .
Bien que cela n'affecte pas les performances, je suggérerais également de simplifier le where clause à :
where parsing_status IS NULL