Visualizzazione dei risultati da 1 a 10 su 10

Discussione: rissa sql...

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    2

    rissa sql...

    Nasce una disputa tra colleghi e dopo la consueta rissa decidiamo di interpellarvi: è più performante fare una select con clausola where "(x=3) or (x=1)" oppure fare una union di due select differenti?


  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    327
    la union non è mai performante

  4. #4
    Utente di HTML.it L'avatar di JamesD
    Registrato dal
    Oct 2001
    Messaggi
    415
    Penso una. Considera che però non ho mai fatto una union!

    Ciaoz

  5. #5
    Originariamente inviato da ddies
    la union non è mai performante
    questa la devi spiegare...

  6. #6
    Si puo rispondere soltanto sapendo come sono implementate internamente le due varianti dal DBMS usato.

    L'SQL come linguaggio non permette di fare assunzioni sulle prestazioni di un costrutto o dell'altro se non si conoscono le indicazioni di chi ha implementato un particolare DBMS, essendo l'SQL un linguaggio fondamentalmente dichiarativo (dichiara quale risultato voglio raggiungere, non come raggiungerlo).

  7. #7
    andrea, la tua dichiarazione e' vera a meta'. ci sono statements sql che si valutano a occhio, senza ricorrere al cronometro (IMHO, OC!).

    prendi ad esempio gli statement del thread

    1o statement
    SELECT campi FROM tabella WHERE x=1 OR x=3

    confrontato con

    2o statement
    SELECT campi FROM tabella WHERE x=1
    UNION
    SELECT campi FROM tabella WHERE x=3

    non credo si debba andare a scomodare il tizio che ha implementato il DBMS per vedere quale e' piu' performante...

  8. #8
    Perche' no?

    potrebbe benissimo avere implementato un ottimizzatore (piuttosto scarso per verita') che esegue la prima esattamente come la seconda.

    O la seconda come la prima (buon ottimizatore di query)

  9. #9
    ..... dai, rimaniamo con i piedi per terra

  10. #10

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 © 2024 vBulletin Solutions, Inc. All rights reserved.