Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Ottimizzazione Query

  1. #1

    Ottimizzazione Query

    Ciao a tutti!
    Intanto complimenti per il forum
    Sto realizzando un progetto di un DB per la gestione delle "SerieTV" con tanto di relazione... sono arrivato quasi a termine (una fatica ;-)) scrivendo query, trigger e stored procedures!
    L'unico punto (DOLENTE) che mi è rimasto riguarda le ottimizzazioni delle query!
    Ho provato a farne una seguendo delle guide online, ma ho le idee piuttosto confuse... nel senso, ho capito intanto come si leggono i parametri del comando EXPLAIN, ma non ho capito come poi utilizzare queste letture per migliorare le query... per non parlare, visto la complessità di alcune query ho dovuto ricorrere a delle viste, e quindi l'explain è ancora più difficile!
    Se volete posso inviarvi la mia relazione per capire meglio il progetto e posso anche allegarvi l'unica prova che sono riuscito a fare...
    Forse tutto sta nel capirne una, e le altre vengono da se... in molte guide ho letto che conviene riscrivere le query, aggiungere indici, forzare i join in un determinato ordine... ma come decido?!
    Grazie a tutti per la disponibilità

  2. #2
    ciao, visto che sei nuovo, dovresti dare una lettura attenta al regolamento; e, come da regolamento, indicare con quale db stai lavorando.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    in generale

    1) se hai query complesse => spezzale. E' inutile far una query gigante che impiega 6 ore per terminare

    2) se hai viste => eliminale. rallentano solo

    3) appoggia tutto quello che puoi di "intelligenza" nell' APPLICAZIONE, non nel db. Sei tu e la tua "intelligenza", trasfusa nell'applicazione, che può sapere come gestire "furbamente" il db. L'RDBMS si limita a tentare di indovinare

    4) se usi EXPLAIN dovrebbe essere mysql. Attenzione ad esempio ai trigger: sono eseguiti PER OGNI RIGA e quindi son in generale lenti
    ---
    Come si decide? Semplice.

    PRIMA si misura
    POI si decide.

    Qualsiasi ottimizzazione slegata da una metrica ampia e coerente è, nella mia esperienza, una cavolata immane

  4. #4
    Originariamente inviato da franzauker
    3) appoggia tutto quello che puoi di "intelligenza" nell' APPLICAZIONE, non nel db. Sei tu e la tua "intelligenza", trasfusa nell'applicazione, che può sapere come gestire "furbamente" il db. L'RDBMS si limita a tentare di indovinare
    sai che non sono d'accordo a meno che già una query o una sp per te non siano "applicativo"

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da optime
    sai che non sono d'accordo a meno che già una query o una sp per te non siano "applicativo"
    una SP sì, ma non è altro che un programma, non ci sono grandi vantaggi ad usarle (con mysql soprattutto), mentre ci sono parecchi svantaggi.

    In ogni caso... c'è un assunto sottointeso: che si abbia l' "intelligenza" superiore a quella dell'RDBMS, nel senso che l'ottimizzatore è (quasi sempre) più "furbo" del niubbo.

    Ma non arriva neppure lontanamente a una "vera" intelligenza e comprensione del modo più adatto per la gestione dei dati

  6. #6
    non so come funzionino le SP con MySql e perché siano svantaggiose di per sé, io con M$SQL risparmio moltissimo portando l'intelligenza lato db con le SP (sottinteso: non è una regola generale, dipende)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da optime
    non so come funzionino le SP con MySql e perché siano svantaggiose di per sé, io con M$SQL risparmio moltissimo portando l'intelligenza lato db con le SP (sottinteso: non è una regola generale, dipende)
    non c'è guadagno significativo, perchè le connessioni-client di mysql sono leggerissime, l'overhead che paghi per eseguire più comandi, invece di una singola chiamata a SP, è piccolo, in generale addirittura trascurabile.

    E, tra l'altro, cosa dovrebbero fare di magico le SP?

  8. #8
    Originariamente inviato da franzauker
    E, tra l'altro, cosa dovrebbero fare di magico le SP?
    azz, mi scadi di brutto se fai domande così ma so che stai scherzando

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da optime
    azz, mi scadi di brutto se fai domande così ma so che stai scherzando
    non è che scherzo, è che ci sono "leggende metropolitane" sulla presunta magicità delle SP (non uso mai la merda-microsoft, quindi lì non ti so dire).

    Ad ogni strato che aggiungi io vedo "overhead, overhead, overhead" il che significa "lento, lento, lento"

    Così come i racconti magici sulla riduzione dei dati trasferiti da client a server (e chi se ne frega?), i "magici" piani precalcolati (a cosa servono? a nulla, visto che i dati cambiano dinamicamente ed un piano buono oggi magari domani non lo è. E poi, soprattutto, i piani in generale sono "stupidi") etc.

    Lato-sicurezza poi, come al solito, un'applicazione può dare diritti con granularità enormemente migliore dei "grezzi" (meglio grossolani) meccanismi RDBMS.

    Avevano un senso 15 anni fa. Oggi, nel 2011, assai meno, visto e considerato che la direzione è a favore dello SVINCOLARSI dal db e dalle sue peculiarità, non LEGARVICI.

  10. #10
    discussione chiusa allora, visto che con la merda-microsoft io invece c'ho cresciuto la famiglia e lì le SP fanno risparmiare parecchio (e l'overhead lavorando con le SP viene tolto, non aggiunto). ma stiamo parlando di cose di cui tu hai soltanto "sentito dire"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.