sql >> Databasteknik >  >> RDS >> Oracle

hur man genererar en förklarande plan för hela lagrad procedur

Det du genererar kallas korrekt för en "exekveringsplan". "Explain plan" är ett kommando som används för att generera och visa en exekveringsplan, ungefär som AUTOTRACE TRACEONLY gör i ditt exempel.

Per definition är en exekveringsplan för en enda SQL-sats. Ett PL/SQL-block har ingen exekveringsplan. Om den innehåller en eller flera SQL-satser kommer var och en av dessa att ha en exekveringsplan.

Ett alternativ är att manuellt extrahera SQL-satserna från PL/SQL-koden och använda den process du redan har visat.

Ett annat alternativ är att aktivera SQL-spårning och sedan köra proceduren. Detta kommer att producera en spårningsfil på servern som innehåller exekveringsplanerna för alla programsatser som körs under sessionen. Spåret är i ganska rå form så det är generellt sett enklast att formatera det med Oracles TKPROF-verktyg; det finns också olika tredjepartsverktyg som också bearbetar dessa spårningsfiler.



  1. ORA-01735:ogiltigt alternativ för ALTER TABLE - Padda

  2. Varför använda Foreign Key-begränsningar i MySQL?

  3. Finns det ett alternativ till utl_http-paketet för http-förfrågan med Oracle pl sql?

  4. Köra ett exempel på RMI-applikation