Diciamo che ho una tabella denominata PEOPLE
con 3 colonne ID, LastName, FirstName
, nessuna di queste colonne è indicizzata.
LastName
è più esclusivo e FirstName
è meno esclusivo.L'ordine in cui le clausole sono importanti in SQL
Se faccio 2 ricerche:
select * from PEOPLE where FirstName="F" and LastName="L"
select * from PEOPLE where LastName="L" and FirstName="F"
La mia convinzione è la seconda è più veloce perché il criterio più unico (LastName
) viene prima nella clausola where
, e le registrazioni otterrà eliminato in modo più efficiente. Non penso che l'ottimizzatore sia abbastanza intelligente da ottimizzare il primo sql.
La mia comprensione è corretta?
No, questo ordine non ha importanza - qualsiasi ottimizzatore di query decente esaminerà ** tutte ** le clausole WHERE e individuerà il modo più efficiente per soddisfare tale query –
Quali sono state le tue osservazioni quando hai eseguito queste due dichiarazioni? Come sono stati i piani di esecuzione? –
Ti riferisci a un RDBMS specifico? Ci sono davvero differenze. – Bjoern