sql >> Database teknologi >  >> RDS >> Oracle

Dvale parameteriseret sql-forespørgsel langsomme og aktive oracle-sessioner

Jeg ved ikke, om dette er dit problem, men Oracle kigger på bindevariableværdier, når den analyserer en forespørgsel og gemmer derefter forespørgselsplanen til fremtidige udførelser, så den ikke behøver at blive ved med at parse forespørgslen, hver gang den køres med en ny sæt af bindevariabler. Men en gang imellem parses forespørgslen igen. Hvis nogle usædvanlige bindevariableværdier tilfældigvis bliver bestået under en parse, bliver en dårlig plan gemt og brugt. Det er en slags forbandelse af bindevariabler. De reducerer parsing, men kan vende planen rundt på atypiske bindevariableværdier, når forespørgsler parses igen. Hints kan hjælpe. Vi bruger SQL-profiler til at låse planer for forespørgsler med bindevariabler, der har tendens til at ændre planer. Nogle gange kan du tilpasse, hvornår og hvordan optimeringsstatistikker indsamles, så der skabes en god plan, uanset hvilke værdier der overføres til bindevariablerne.

Det er i hvert fald noget, jeg ser hele tiden, og det kan være dit problem eller ikke.

Bobby




  1. Slet rækker med fremmednøgle i PostgreSQL

  2. videregive javascript-variabel til php mysql-valgsforespørgsel

  3. ORA-04076:ugyldig ny eller gammel specifikation - PL/SQL - Oracle Trigger

  4. MySQL Limit med mange til mange forhold