Avoir tes requêtes nous aiderait à comprendre ce qu'il se passe. Éventuellement le code de tes modèles aussi (enfin uniquement les liaisons), et si possible le find que tu réalises dans ton controller Visits.
Ensuite, il faut savoir que CakePHP fonctionne comme cela pour les queries (en tout cas en version 2.x) :
- une requête unique avec des JOIN (le type de join, left ou inner, peut être défini dans les liaisons) quand il s'agit d'une relation hasOne ou belongsTo
- plusieurs SELECT successifs dans le cas de toute autre relation (hasMany, hasAndBelongsToMany)
En faisant quelques recherches, j'ai trouvé ce tuto (en anglais) pour forcer les SQL Join même sur les relations pour lesquelles Cake ne les utilise pas : http://nuts-and-bolts-of-cakephp.com/2008/07/17/forcing-an-sql-join-in-cakephp/
Après, cela revient à chaque fois à délier les modèles et les réassembler lors de la requête. On perd tout l'intérêt des liaisons de modèles de Cake.
Je pense aussi que ta méconnaissance des bases de données te met sur une fausse piste : n'avoir qu'une seule requête n'est pas forcément synonyme de performances et de temps de réponses. Ce qui va déterminer tout cela, c'est d'une part la structure de tes tables, la façon dont tu spécifies de façon précise les index, la configuration de la BDD, la taille de tes tables également, et d'autre part le façon dont tu gères ton cache application.
Cake se base sur des standards, et dans le cas d'un hasMany et encore plus dans celui d'un hasAndBelongsToMany (avec les tables de jointures) il s'avère que les perfs sont meilleures en enchaînant plusieurs SELECT plutôt qu'en réalisant des JOIN.
Pour conclure, je dirais que selon ta config serveur, tu as un cap à partir duquel le JOIN retrouve son utilité à haut volume (5, 10, 15...), et pour déterminer cela, il n'y a que les tests qui pourront t'aider. Mais d'un côté, quand tu en arrives à 15 niveau de récursivité sur un find, le problème se situe plus sur l'organisation des données et sur la pertinence d'une telle requête qu'au niveau de ce que fait Cake ou non.