On 2014-10-02 19:04, Paolo Leggio wrote:

Applicando invece un ordinamento, sorgono i miei problemi:

Qual'e' l'sql generato? Guardandolo potresti capirci qualcosa in piu'.

Non mi ricordo (mai) come fare a visualizzarlo: puoi senz'altro mettere un paio di print nei sorgenti di django vicino al cursor.execute(). Ma l'ultima volta che l'ho fatto ho notato che c'era un logger apposito che si puo' abilitare, quindi in pratica puoi fare cosi': http://www.dabapps.com/blog/logging-sql-queries-django-13/ (ovvero, prova quello che dice questo tizio, che non l'ho verificato; se non funziona greppa i sorgenti e trova qual'e' il logger da abilitare).

Alternativamente puoi usare django-debug-toolbar.

Nota (che riprende il discorso orm buoni, orm cattivi dell'altra volta): tutte le volte che ho sviluppato un sito django ho sempre trovato *preziosissimo* guardare le query in fase di sviluppo: aiuta a capire se per caso si sta incocciando nel problema di prestazioni piu' serio che capita usando un ORM ingenuamente: il "ripple loading" (http://tinyurl.com/n4ag5gg). Guardando le query scorrere ci si accorge subito se un attributo (magari invocato nel template, neanche nella view) sta caricando tutti gli oggetti collegati ad un queryset in maniera "lazy" (si vedono scorrere 100 query tutte uguali). Con l'ORM di django si puo' risolvere con un paio di botte di select_related. Ma bisogna accorgersene prima.


-- Daniele

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a