sql >> Databasteknik >  >> RDS >> Oracle

Prestanda:Underfråga eller Gå med

Moderna RDBM:er, inklusive Oracle, optimerar de flesta anslutningar och underförfrågningar ner till samma exekveringsplan.

Därför skulle jag gå vidare och skriva din fråga på det sätt som är enklast för dig och fokusera på att se till att du har optimerat dina index helt.

Om du anger din slutliga fråga och ditt databasschema kanske vi kan erbjuda detaljerade förslag, inklusive information om potentiella låsningsproblem.

Redigera

Här är några allmänna tips som gäller för din fråga:

  • För anslutningar, se till att du har ett index på de kolumner som du går med i. Se till att använda ett index på de sammanfogade kolumnerna i båda tabellerna. Du kanske tror att du bara behöver indexet i en riktning, men du bör indexera båda, eftersom databasen ibland avgör att det är bättre att gå med i motsatt riktning.
  • För WHERE-satser, se till att du har index på kolumnerna som nämns i WHERE.
  • Om du vill infoga många rader är det bäst om du kan infoga alla i en enda fråga.
  • För att infoga i en tabell med ett klustrat index är det bäst om du infogar med inkrementella värden för det klustrade indexet så att de nya raderna läggs till i slutet av data. Detta undviker att bygga om indexet och undviker ofta låsningar på befintliga poster, vilket skulle sakta ner SELECT-frågor mot befintliga rader. I grund och botten blir inlägg mindre smärtsamma för andra användare av systemet.


  1. Oavslutande periodisk återhämtning av heuristiska deltagare

  2. Uppdatera en kolumn i en tabell med en kolumn i en annan tabell i PostgreSQL

  3. PHP-meddelande:Odefinierad offset

  4. php-kod för att generera flera rader med anpassad kod