Use serially reusable packages - performance of application, PL-SQL Programming

Assignment Help:

Use Serially Reusable Packages

To help you to manage the use of memory, the PL/SQL gives the pragma SERIALLY_ REUSABLE that mark some packages as serially reusable. So mark a package if its state is required only for the duration of one call to the server (for illustration, an OCI call to the server or a server-to-server RPC).

The global memory for these packages is pooled in the System Global Area (SGA), not allocated to the individual users in the User Global Area (UGA). In that way, the package work region can be reused. If the call to the server ends, the memory is return to the pool. Each time the package is reused, the public variables are initialized to its default values or to NULL.

The maximum number of work regions required for a package is the number of concurrent users of that package that is usually much smaller than the number of logged-on users. The bigger use of SGA memory is more than offset by the reduced use of UGA memory. The Oracle ages-out work areas are also not in use if it requires reclaiming the SGA memory.

For packages without a body, you code the pragma in the package specification using the

Syntax as shown:

PRAGMA SERIALLY_REUSABLE;

For packages with a body, you should code the pragma in the specification and body. You cannot only code the pragma in the body. The illustration below shows how a public variable in a serially reusable package behaves across the call boundaries:

CREATE OR REPLACE PACKAGE sr_pkg IS

PRAGMA SERIALLY_REUSABLE;

num NUMBER := 0;

PROCEDURE init_pkg_state(n NUMBER);

PROCEDURE print_pkg_state;

END sr_pkg;

/

CREATE OR REPLACE PACKAGE BODY sr_pkg IS

PRAGMA SERIALLY_REUSABLE;

/* Initialize package state. */

PROCEDURE init_pkg_state (n NUMBER) IS

BEGIN

sr_pkg.num := n;

END;

/* Print package state. */

PROCEDURE print_pkg_state IS

BEGIN

DBMS_OUTPUT.PUT_LINE('Num is: ' || sr_pkg.num);

END;

END sr_pkg;

/

BEGIN

/* Initialize package state. */

sr_pkg.init_pkg_state(4);

/* On same server call, print package state. */

sr_pkg.print_pkg_state; -- prints 4

END;

/

-- subsequent server call

BEGIN

-- package's public variable will initialized to its

-- default value automatically

sr_pkg.print_pkg_state; -- prints 0

END;


Related Discussions:- Use serially reusable packages - performance of application

Write a stored procedure, a. Create a table odetails_new. It has all the a...

a. Create a table odetails_new. It has all the attributes of odetails and an additional column called cost, whose values are the product of the quantity and price of the part bein

EXCEPTION handling, set serveroutput on declare a number(5); b numb...

set serveroutput on declare a number(5); b number(5); c number(5); begin a:=&a; b:=&b; c:=a/b; dbms_output.put_line(c); exception when zero_divide then d

Using exception_init - user-defined exceptions, Using EXCEPTION_INIT T...

Using EXCEPTION_INIT To handle unnamed internal exceptions, you should use the OTHERS handler or the pragma EXCEPTION_INIT. The pragma is a compiler directive that can be th

Relational algebra - sql, Relational Algebra - SQL It describes some ...

Relational Algebra - SQL It describes some operators, that together constitute an algebra that is not only relationally complete but also irreducibly so (very nearly- apart f

Example of when or then constraints - sql, Example of WHEN or THEN Constrai...

Example of WHEN or THEN Constraints A concrete example showing how SQL supports WHEN/THEN constraints CREATE TABLE SAL_HISTORY (EmpNo CHAR (6), Salary INTEGER NOT NULL,

Execute immediate statement - syntax, EXECUTE IMMEDIATE Statement   Th...

EXECUTE IMMEDIATE Statement   The EXECUTE IMMEDIATE statement prepare (parses) and instantly executes a dynamic SQL statement or an anonymous PL/SQL block. Syntax:

Iterative control: loop statement, Iterative Control: LOOP  Statements T...

Iterative Control: LOOP  Statements The LOOP statement executes a series of statements multiple times. There are 3 forms of LOOP statements: LOOP, WHILE-LOOP, & FOR-LOOP. LOOP

Overloading, Overloading The PL/SQL overloads the subprogram names. T...

Overloading The PL/SQL overloads the subprogram names. That is, you can use similar name for few different subprograms as long as their formal parameters differ in the number

Semidifference via except and join - sql, Semidifference via EXCEPT and JOI...

Semidifference via EXCEPT and JOIN - SQL SELECT * FROM (SELECT StudentId FROM IS_CALLED WHERE Name = 'Devinder' EXCEPT DISTINCT CORRESPONDING SELECT StudentId

Unnest operator in sql, UNNEST operator in SQL The inverse operator of...

UNNEST operator in SQL The inverse operator of GROUP is UNGROUP. SQL has an operator, UNNEST, that can be used for similar purposes, but its method of invocation is somewhat p

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd