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

Cursor variables as parameters, Cursor Variables As Parameters You can...

Cursor Variables As Parameters You can declare the cursor variables as the formal parameters of the functions and procedures. In the illustration below, you define the REF CUR

Important distinctions, Important Distinctions The list of important d...

Important Distinctions The list of important distinctions are given below: Value versus variable Syntax versus semantics Variable versus variable reference

Parameter and keyword description - %type attribute, Parameter and Keyword ...

Parameter and Keyword Description: collection_name: This keyword identifies the index-by table, nested table, or varray formerly declared within the present scope. cu

How transactions guard your database, How Transactions Guard Your Database ...

How Transactions Guard Your Database The transaction is a sequence of SQL data manipulation statements which does a logical unit of work. The Oracle treats the sequence of SQL

Difference between 9i & 10g, Difference between 9i & 10G When Oracle r...

Difference between 9i & 10G When Oracle releases any new databases then it are having some discrepancy with them. But 10G is having much difference than oracle 9i has. Oracle

Redeclaring predefined exceptions - user-defined exceptions, Redeclaring Pr...

Redeclaring Predefined Exceptions Keep in mind that, the PL/SQL declares predefined exceptions globally in the package STANDARD; Therefore you need not declare them yourself.

Develop data business intelligence project, Develop Data Business Intellige...

Develop Data Business Intelligence Project Project Description: We are linking our Microsoft SQL Database to GoodData Business Intelligence. We are seeking somebody who has e

Assignment of DBMS in SQL server, i have an assignment of DBMS subject, thi...

i have an assignment of DBMS subject, this assignment is based on SQL server and power BI

Transaction context, Transaction context As the figure shows, the majo...

Transaction context As the figure shows, the major transaction shares its context with the nested transactions, but not with the autonomous transactions. Similarly, If one aut

Types of evolution, TYPES OF EVOLUTION - Sequential evolution         ...

TYPES OF EVOLUTION - Sequential evolution                  :                    Minor changes in the gene pool of a population from one generation to the next, with the resul

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