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

Keyword and parameter description - delete statement, Keyword and Parameter...

Keyword and Parameter Description: table_reference: This specifies a table or view that should be accessible when you execute the DELETE statement, and for that you must

Biconditional - sql, Biconditional - SQL The biconditional p ↔ q can b...

Biconditional - SQL The biconditional p ↔ q can be expressed in Tutorial D by p = q and the same is true of SQL. The question then arises as to whether, in SQL, p = q is equiv

Defining records, Defining and Declaring Records To create records, yo...

Defining and Declaring Records To create records, you have to define a RECORD type, and then declare records of that type. You may also define RECORD types in the declarative

Calling constructors in pl sql, Calling Constructors: The Calls to a c...

Calling Constructors: The Calls to a constructor are allowed wherever the function calls are allowed. Similarly to the functions, a constructor is called as a section of an ex

Updating objects in pl sql, Updating Objects: To change the attributes...

Updating Objects: To change the attributes of objects in an object table, you can use the UPDATE statement, as the illustration below shows: BEGIN UPDATE persons p SET p

Parameter & keyword description-execute immediate statement, Parameter and ...

Parameter and Keyword Description: dynamic_string: This is a string variable, literal, or expression which represents a SQL statement or the PL/SQL block. define_vari

Set operators - sql operators, Set Operators The Set operators combine...

Set Operators The Set operators combine the results of the two queries into one result. The INTERSECT returns all the distinct rows selected by both queries. The MINUS returns

Keys in sql, Keys in SQL SQL support for keys in the following respect...

Keys in SQL SQL support for keys in the following respects: SQL does not require at least one key for every base table. If no key is explicitly declared, then KEY {ALL B

Using aggregation on nested tables - sql, Using Aggregation on Nested Table...

Using Aggregation on Nested Tables Example is the most direct translation of its counterpart in the theory book that can be obtained in SQL but it is so over-elaborate that no

Check constraints in sql, CHECK Constraints in SQL A CHECK constraint ...

CHECK Constraints in SQL A CHECK constraint is a table constraint defined using the key word CHECK, as already illustrated in several examples in this chapter. In particular,

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