sql >> Database >  >> RDS >> Oracle

Prestaties:subquery of deelnemen

Moderne RDBM's, waaronder Oracle, optimaliseren de meeste joins en subquery's tot hetzelfde uitvoeringsplan.

Daarom zou ik doorgaan en uw zoekopdracht op de voor u meest eenvoudige manier schrijven en ervoor zorgen dat u uw indexen volledig heeft geoptimaliseerd.

Als u uw laatste vraag en uw databaseschema opgeeft, kunnen we mogelijk gedetailleerde suggesties doen, inclusief informatie over mogelijke vergrendelingsproblemen.

Bewerken

Hier volgen enkele algemene tips die van toepassing zijn op uw vraag:

  • Zorg ervoor dat je voor joins een index hebt op de kolommen waaraan je meedoet. Zorg ervoor dat u een index toepast op de samengevoegde kolommen in beide tabellen. Je denkt misschien dat je de index maar in één richting nodig hebt, maar je moet beide indexeren, omdat de database soms bepaalt dat het beter is om in de tegenovergestelde richting mee te doen.
  • Voor WHERE-clausules moet u ervoor zorgen dat u indexen hebt op de kolommen die worden vermeld in de WHERE.
  • Als u veel rijen wilt invoegen, kunt u ze het beste allemaal in één query invoegen.
  • Voor het invoegen in een tabel met een geclusterde index, is het het beste om incrementele waarden voor de geclusterde index in te voegen, zodat de nieuwe rijen aan het einde van de gegevens worden toegevoegd. Dit voorkomt dat de index opnieuw moet worden opgebouwd en vermijdt vaak vergrendelingen op de bestaande records, wat SELECT-query's voor bestaande rijen zou vertragen. Kortom, inserts worden minder pijnlijk voor andere gebruikers van het systeem.


  1. Oracle ruimtelijk zoeken op afstand

  2. Is er een MySQL-functie zoals de TIMESTAMP-kolom van SQL Server?

  3. Mysql:Uitvoeren van NIET BESTAAT. Is het mogelijk om de prestaties te verbeteren?

  4. openerp:interne serverfout op ubuntu