Anthony Presley a écrit :
>
> Bien que votre première option fonctionnerait dans mon cas, ce serait
> un véritable casse-tête, car il faudrait des jointures EXTERNES
> (OUTER) sur les tables d'adresses et de téléphones, et joindre environ
> 100 000 enregistrements avec 300 000 puis encore 150 000 prend un
> certain temps [bien que ce fût ma solution initiale].
En quoi une jointure externe compliquerait-elle les choses ? Elle rendra la requête élégante, et devrait même améliorer vos performances. Je n'ai pas examiné vos tables ni vos requêtes en détail, mais en supposant que le moteur soit capable d'utiliser les index appropriés pour ordonner efficacement les lectures, l'utilisation de jointures externes est bien préférable à la réalisation manuelle de vos propres jointures au moyen de curseurs distincts. Une jointure externe peut être aussi performante qu'une jointure ordinaire, la seule différence étant que, si aucune ligne correspondante n'est trouvée dans la table externalisée, le moteur se contente de renvoyer NULL dans les colonnes concernées.
Où est le problème ?