sql >> Database >  >> RDS >> Oracle

orakel - dezelfde zoekopdracht maar ander plan in 11g en 12c

Het uitvoeringsplan dat door de gekozen optimizer is gekozen, kan sterk variëren, zelfs tussen twee omgevingen van dezelfde versie, niet alleen 11g en 12c. Het hangt van veel factoren af, maar vooral:

  • Aantal rijen in de tabel (zijn ze vergelijkbaar tussen envs?)
  • Welke indexen zijn aanwezig (hebben beide dbs exact dezelfde indexen?)
  • Zijn er statistieken voor de tabel en de indexen, en hoe up-to-date zijn ze? Indien niet up-to-date, verzamel dan statistieken voor de tabellen en de indexen.

Als u deze details kunt posten, kan ik u een nuttiger antwoord geven.

De code ziet er ook uit als automatisch gegenereerd, als u vrij bent om ze aan te passen, kunnen we op basis van de details een herschreven zoekopdracht en/of hints voorstellen.

Als u de code niet kunt wijzigen, kunt u een plan forceren met SQL Plan Management (SPM) - export van de db waar het sneller draait en importeer in de andere db.

UPDATE

Gebruik deze vereenvoudigde versie van de SQL om het plan te genereren:

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. hoeveel max join tafels op mysql? en hoe te tellen?

  2. Waar moet ik de gegevens van mijn database bewaren?

  3. isset($_POST['submit']) werkt nu niet

  4. Hoe haal je de datum van de mms uit content://mms.