Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [Oracle] Ordine delle WHERE

    ciao!

    sono sempre stato abituato ad ordinare le clausole WHERE su Mysql in ordine di importanza.
    nel senso a mettere prima quelle che scremano di più, e poi via discorrendo.
    codice:
    SELECT * FROM tbl
    WHERE campo1 = qualcosa AND campo2 = altro.....
    ora mi dicono che su oracle è il contrario.
    quindi la query sopra diventerebbe:
    codice:
    SELECT * FROM tbl
    WHERE alotr.....campo2 = altro AND campo1 = qualcosa
    e questo varrebbe anche con eventuali JOIN.

    ma è vera questa cosa?
    so che sembra una domanda stupida, ma hanno insistito talmente tanto su questa cosa che mi sono incuriosito.

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Che io sappia l'ordine con cui metti le clausole nella where non ha impatto sulle prestazioni.
    NE su mysql NE su oracle NE su altro.

  3. #3
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    Che io sappia l'ordine con cui metti le clausole nella where non ha impatto sulle prestazioni.
    NE su mysql NE su oracle NE su altro.
    ma infatti anche io sapevo così.
    su mysql le mettevo in ordine più che altro per un discorso logico.

    però su oracle mi hanno talmente tanto fatto una capoccia così che ho pensato mi fosse sfuggito qualcosa.
    tra l'altro ho cercato un pò qua e la e non ho trovato nulla....

  4. #4
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Ho trovato questo:
    http://www.dba-oracle.com/t_where_clause.htm

    Ma la gestione e' un po' più complessa.
    E il discorso vale solo per Oracle, non so come ragionano gli altri.

  5. #5
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    Ho trovato questo:
    http://www.dba-oracle.com/t_where_clause.htm

    Ma la gestione e' un po' più complessa.
    E il discorso vale solo per Oracle, non so come ragionano gli altri.
    grazie, me lo sono letto.
    in effetti è un pò più complicato, ma è specificato più volte che si tratta della versione 10g, o versioni precedenti.
    io la 12g, quindi non dovrebbe interessarmi da quanto ho capito!

    ho trovato anche questo di articolo, che indica la stessa cosa in pratica: http://www.dba-oracle.com/Oracle_tip...cate_order.htm

  6. #6
    puoi usare l'argomento della where come chiave di join e allora le prestazioni possono cambiare (parlo per esperienza, su M$SQL però)

  7. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    puoi usare l'argomento della where come chiave di join e allora le prestazioni possono cambiare (parlo per esperienza, su M$SQL però)
    si si, ho visto anche questo infatti, grazie!

    oggi ho fatto un pò di test.
    qualcosa cambia, ma penso che inizino ad impattare quando iniziamo a parlare di centinaia di miglia di record.
    su una tabella con 30.000 record, è cambiato di 0,10 secondi (cioè quasi il nulla).

  8. #8
    eh sì, dagli qualcosa con cui sfogarsi!

  9. #9
    Quote Originariamente inviata da optime Visualizza il messaggio
    eh sì, dagli qualcosa con cui sfogarsi!
    hai ragione anche te

  10. #10
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Quote Originariamente inviata da fermat Visualizza il messaggio
    si si, ho visto anche questo infatti, grazie!

    oggi ho fatto un pò di test.
    qualcosa cambia, ma penso che inizino ad impattare quando iniziamo a parlare di centinaia di miglia di record.
    su una tabella con 30.000 record, è cambiato di 0,10 secondi (cioè quasi il nulla).
    Beh chiaro, per vedere un risultato devi avere molti valori su una query così semplice.
    Altrimenti puoi vedere il piano di esecuzione della query (su oracle sinceramente non so come si faccia).

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