sql >> Databasteknik >  >> RDS >> Oracle

oracle - samma fråga men annan plan i 11g och 12c

Utförandeplanen som väljs av den valda optimeraren kan variera mycket även mellan två miljöer av samma version, inte bara 11g och 12c. Det beror på många faktorer, men mest:

  • Antal rader i tabellen (är de lika mellan envs?)
  • Vilka index finns (har båda dbs exakt samma index?)
  • Finns det statistik för tabellen och indexen, och hur uppdaterade är de? Om du inte är uppdaterad, samla statistik för tabellerna och indexen.

Om du kan lägga upp dessa detaljer kan jag ge ett mer användbart svar.

Dessutom ser koden ut som automatisk genererad, om du har frihet att ändra dem, baserat på detaljerna, kan vi föreslå en omskriven fråga och/eller tips.

Om du inte kan ändra koden kan du tvinga fram en plan med SQL Plan Management (SPM) - exportera från db där den körs snabbare och importera till den andra db.

UPPDATERA

Använd den här förenklade versionen av SQL för att skapa planen:

SELECT * FROM DMProgDate_00001
 WHERE ProgressOID IN ( 
   SELECT OID FROM DMProgress_00001 
    WHERE Project = 'Moho'
      AND Phase = 'Procurement'
      AND Displine = 'Q340'
      AND ROWNUM <= 20
    ORDER BY actCode
  );



  1. Kontrollera om två val är likvärdiga

  2. Analysera CSV och exportera till Mysql-databas i Grails

  3. Oracle-datum Between Query

  4. Plats för databastabeller - MySQL - Windows XP