Bonjour

Je pense que c'est parce que doSelectJoinAll fait des 'join' et non pas 
des 'left join'. Ce qui explique que tu ne recuperes pas les 
enregistrements pour lesquels la clef etrangère est null. (Tu dois 
pouvoir t'en rendre compte en regardant la requete sql dans le panneau 
de debug).

Pour résoudre ce problème : tu peux faire un myDoSelectJoinAll avec deux 
requêtes dont tu fusionnerais les résultats (attention, il sera 
peut-être necessaire de les retrier).
-- requete 1 : join normal quand clef étrangère <> null
-- requete 2 : recuperation normal quand clef étrangère == null

Sinon tu peux faire un doSelectJoinAllExceptx où x est la clef etrangère 
qui pose problème.

En parlant d'optimisation de manière plus générale, il existe d'autres 
pistes :
-- Bidouiller hydrate et doSelect pour ne pas recuperer les champs 
gourmands en taille (longtext, blob, ...) qui augmentent énormément le 
volume de données extrait de la base.
-- Eviter les insertions répétées de components et de partials (là je 
suis moins sûr de moi, à priori, c'est pas mal optimisé)
-- Eviter les outils qui parsent le code html du côté client pour 
ajouter des comportements javascript (surtout quand les clients ont des 
petites configs)

Quoiqu'il en soit, je regarde toujours en profondeur le panneau de debug 
avant d'optimiser, les gaspillages de temps se trouvent souvent à des 
endrois peu évidents.

'Librement'

Nicolas

Guillaume badin a écrit :
> Bonjour a tous voila je dévellope une application avec l'admin
> generator dans le cadre de mon stage
> Cette apli sert au suivi des commandes.
> j'ai une base principale avec bcp de clef etrangere.
> mon appli est sympa mais elle rame énormément (8 s) pour charger 278
> commande.
> j'ai utilisé toute les optimizations possible et je vient de découvrir
> qu'on pouvait faire un doSelectJoinAll
> Je  doit pas très bien comprendre comment ca marche le doSelectJoinAll
> mais cela m'affiche que les quelques ligne qui on la chance d'avoir
> une cle etrangere a l'ID = 1
> je sais pas si je me suis fait comprendre.
> j'ai deux table
>
> Suivi et  TrigrammeDevellopeur
> cela m'affiche que les suivi avec l'id = 1 dans le champ
> TrigrammeDev_id
> je souligne le fait que ca marche tres bien avec un doselect normal Le
> probleme apparait que lorsque j'ai DoSelectJoinAll
>
> SVP aider moi je dois rendre le projet mercredi et j'ai convaincu mon
> patron de se lancer dans symfony si je lui rend un truc qui rame a mon
> avis ils voudront plus jamais toucher a ce frammework.



--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse symfony-fr@googlegroups.com
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [EMAIL PROTECTED]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à