sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL Query Filter i JOIN ON vs WHERE

Det ska inte vara någon skillnad. Optimeraren bör generera samma plan i båda fallen och bör kunna tillämpa predikatet före, efter eller under kopplingen i båda fallen baserat på vad som är det mest effektiva tillvägagångssättet för den specifika frågan.

Naturligtvis det faktum att optimeraren kan göra något är i allmänhet ingen garanti för att optimeraren kommer faktiskt göra något i en viss fråga. När frågorna blir mer komplicerade blir det omöjligt att uttömmande överväga alla möjliga frågeplaner, vilket innebär att även med perfekt information och perfekt kod kanske optimeraren inte hinner göra allt som du vill att den ska göra. Du måste ta en titt på de faktiska planerna som genereras för de två frågorna för att se om de faktiskt är identiska.



  1. Pivot på Oracle 10g

  2. Konvertera django RawQuerySet till Queryset

  3. återanvända resultatet av ett urvalsuttryck i GROUP BY-satsen?

  4. Cygnus-NGSI kommer inte att spara data i PostgreSQL