sql >> Databáze >  >> RDS >> Oracle

Oracle SQL Query Filter v JOIN ON vs WHERE

Neměl by být žádný rozdíl. Optimalizátor by měl v obou případech vygenerovat stejný plán a měl by být schopen použít predikát před, po nebo během spojení v obou případech na základě toho, co je nejúčinnější přístup pro daný konkrétní dotaz.

Samozřejmostí je skutečnost, že optimalizátor umí něco udělat, obecně není zárukou, že optimalizátor udělá skutečně udělat něco v konkrétním dotazu. Jak se dotazy komplikují, stává se nemožným vyčerpávajícím způsobem zvážit každý možný plán dotazů, což znamená, že i s dokonalými informacemi a dokonalým kódem nemusí mít optimalizátor čas udělat vše, co byste chtěli. Budete se muset podívat na skutečné plány vygenerované pro dva dotazy, abyste zjistili, zda jsou skutečně totožné.



  1. Použití pole uloženého data k výpočtu pole, které počítá aktuální počet uplynulých dnů

  2. Jarní změna relace JdbcTemplate

  3. porovnání sloupce se seznamem hodnot v t-sql

  4. Instalace Django mysqlclient