PL/SQL verbeteringen in Oracle Database 10g - native compilatie
Oracle 10g bevat veel PL/SQL verbeteringen inclusief:

PL/SQL Native Compilation

Het proces van PL/SQL native compilation is in Oracle 10g eenvoudiger gemaakt. De opgebouwde shared libraries worden nu in de database opgeslagen en uitgepakt als ze nodig zijn. Dit betekend dat ze onderdeel zijn geworden van het normale back-up en recovery proces,geen handmatig onderhoud behoeven en beschikbaar zijn in Real Application Cluster (RAC) configuraties. Native compilatie van de package specificatie en body zijn onafhankelijk van elkaar wat inhoud dat ze onafhankelijk van elkaar compiled kunnen worden.

De PLSQL_NATIVE_LIBRARY_DIR parameter is de enige parameter die gezet moet worden om native compilatie te kunnen gebruiken. Alle andere parameters zijn obsolete geworden. De bijbehorende compilatie commando's zijn opgelagen in de $ORACLE_HOME/plsql/spnc_commands file welke niet aangepast hoeft te worden.

Native compilatie wordt aan en uit gezet met de PLSQL_CODE_TYPE parameter die gezet kan worden op instance en sesie level met de ALTER SYSTEM en ALTER SESSION commando's . Bijgaand een voorbeeld van native PL/SQL compilatie:
-- Het zetten van de  PLSQL_NATIVE_LIBRARY_DIR parameter.
CONN / AS SYSDBA
ALTER SYSTEM SET PLSQL_NATIVE_LIBRARY_DIR='/u01/app/oracle/native/' SCOPE=SPFILE;
SHUTDOWN IMMEDIATE
STARTUP

-- Aanzetten van native compilation en compileren van een procedure.
CONN scott/tiger
ALTER SESSION SET PLSQL_CODE_TYPE='NATIVE';

CREATE OR REPLACE PROCEDURE test_speed AS
v_number NUMBER;
BEGIN
FOR i IN 1 .. 10000000 LOOP
v_number := i / 1000;
END LOOP;
END;
/

SET TIMING ON
EXEC test_speed;

PL/SQL procedure successfully completed.

Elapsed: 00:00:07.19

-- Het uitzetten van ative compilation en recompile de procedure.
ALTER SESSION SET PLSQL_CODE_TYPE='INTERPRETED';
ALTER PROCEDURE test_speed COMPILE;
EXEC test_speed;

PL/SQL procedure successfully completed.

Elapsed: 00:00:08.03

-- Opruimen.
DROP PROCEDURE test_speed;
 

Advertentie

>

Poll

Voorkeur
 

Wie is er aanwezig

We hebben 274 gasten online