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

Hvornår vil en korrekt SQL give et forkert resultat

En ting, du kan gøre, er at anvende NO_QUERY_TRANSFORMATION-tip, der er introduceret i Oracle 10g.

Hvis dette giver det ønskede resultat, ved du, at du står over for en Oracle-fejl, da intet tip bør ændre det faktiske resultat af en forespørgsel.

Samtidig har du muligvis løst dit problem, bortset fra at din eksekveringsplan måske ikke vil være tilfredsstillende.

Den fejl, du står over for (jeg ved ikke, om det er en kendt fejl) er, at Oracle-optimeringsværktøjet muligvis ikke fortolker hensigten med den oprindelige forespørgsel korrekt, når forespørgslen transformeres til en bedre eksekveringsplan (fletvisninger osv.). Ved at bruge tippet instruerer du optimeringsværktøjet til ikke at gøre det.

Fænomenet ses oftest med komplekse forespørgsler, der involverer indlejrede ydeevnevisninger.

I øjeblikket har jeg ingen kodeeksempler til at genskabe dette problem, men jeg arbejder på det.

OPDATERING:Det ser ud til, at det i virkeligheden er det, tippet er beregnet til - jeg fandt dette:

doumentation .




  1. PHP kan ikke oprette forbindelse til mysql gennem python

  2. Tilføjelse af ADO.NET Entity Data Model i VS 2017, og der sker ikke noget

  3. Sådan skifter du en boolean i postgres i én forespørgsel

  4. Jeg forsøger at lave to forskellige tabeller, mangetoone-mapping i en enkelt kolonne for en enhedsklasse