sql >> Databasteknik >  >> RDS >> Oracle

När kommer en korrekt SQL att ge ett felaktigt resultat

En sak du kan göra är att tillämpa NO_QUERY_TRANSFORMATION-tipset som introducerades i Oracle 10g.

Om detta ger önskat resultat vet du att du står inför en Oracle-bugg, eftersom ingen ledtråd bör ändra det faktiska resultatet av en fråga.

Samtidigt kan du ha löst ditt problem förutom att din genomförandeplan kanske inte kommer att vara tillfredsställande.

Buggen du står inför (jag vet inte om det är en känd bugg) är att Oracle-optimeraren kanske inte tolkar syftet med den ursprungliga frågan korrekt när frågan transformeras för bättre exekveringsplan (sammanslagningsvyer etc.). Genom att använda tipset instruerar du optimeraren att inte göra det.

Fenomenet ses oftast med komplexa frågor som involverar inline prestandavyer.

För närvarande har jag inga kodexempel för att återskapa det här problemet men jag jobbar på det.

UPPDATERING:Det verkar som att det är det här tipset är avsett för - jag hittade det här:

doumentation .




  1. PARSE() vs TRY_PARSE() i SQL Server:Vad är skillnaden?

  2. MySQL - Hur söker man efter exakt ordmatchning med LIKE?

  3. php / Mysql bästa trädstruktur

  4. SQL Kan inte infoga explicit värde för identitetskolumnen i tabellen "Tabell" när IDENTITY_INSERT är inställt på AV