C'est une grosse base ! mais 8h ça me semble beaucoup, même si le temps de traitement augmente sans doute beaucoup plus vite que la taille du fichier. Essayez de libérer le plus possible de RAM. Avec 45000 fiches, c'est de l'ordre de 20-30mn chez moi.
Sauf cas particulier, j'ai l'impression que l'on a intérêt à fractionner sa base de données car certaines branches ont très peu de chance d'avoir un lien avec d'autres.