PLSQL_CONN_MEM_LIMIT
This attribute specifies the maximum amount of process heap memory in megabytes that PL/SQL can use for the connection in which it is set.
Some things to consider when setting this attribute are:
-
PL/SQL does not allocate this memory until or unless it is needed. Many PL/SQL programs require only a small amount of memory. How you write your application can determine memory requirements. For example, using large
VARRAYsin PL/SQL code can require a lot of memory. -
If you attempt to allocate more memory than allowed, TimesTen returns an error.
-
The value can be modified with the ALTER SESSION statement, described in Oracle TimesTen In-Memory Database SQL Reference. For example:
ALTER SESSION SET PLSQL_CONN_MEM_LIMIT = 100;
Required Privilege
No privilege is required to change the value of this attribute.
Setting
Set PLSQL_CONN_MEM_LIMIT as follows:
| Where to set the attribute | How the attribute is represented | Setting |
|---|---|---|
|
C or Java programs or UNIX and Linux systems |
|
An integer value in MB. Default value is |
|
Windows ODBC Data Source Administrator |
Not applicable |
Note that the amount of space consumed by PL/SQL variables is roughly what you might expect comparable variables to consume in other programming languages. As an example, consider a large array of strings:
type chararr is table of varchar2(32767)
index by binary_integer;
big_array chararr;
If 100,000 strings of 100 bytes each are placed into such an array, approximately 12 megabytes of memory is consumed.
Memory consumed by variables in PL/SQL blocks is used while the block executes, then is released. Memory consumed by variables in PL/SQL package specifications or bodies (not within a procedure or function) is used for the lifetime of the package. Memory consumed by variables in a PL/SQL procedure or function, including one defined within a package, is used for the lifetime of the procedure or function. However, in all cases, memory freed by PL/SQL is not returned to the operating system. Instead, it is kept by PL/SQL and reused by future PL/SQL invocations. The memory is freed when the application disconnects from TimesTen.