Pour la recherche en base, je ne vois pas vraiment d'autres solutions.
Par contre, pour des insertions, le problème se pose d'une manière très différente, car il existe l'insertion en masse (bulk comme disent les anglais) à partir d'un fichier texte, qui est bien plus rapide qu'une boucle de 40 000 insert.
L'insertion en masse se fait via l'importation de données externes, qui comporte l'option, relativement peu connue mais parfois utile, du fichier de spécifications (voir le bouton "avancé" dans l'un des écran d'importation).