Plsqlbindbucketwidths – Oracle B12255-01 User Manual

Page 101

Advertising
background image

mod_plsql

Oracle HTTP Server Modules

7-31

Notes:

This parameter is relevant only if you are using procedures with array
parameters, and passing varying number of parameters to the procedure.

The default should be sufficient for most PL/SQL applications.

To see if this parameter needs to be changed, check the number of versions of a
SQL statement in the SQL area.

Consider using flexible parameter passing to reduce the problem.

In older versions of the product, this parameter was called bind_bucket_
lengths

.

PlsqlBindBucketWidths

Specifies the rounding size to use while binding the

number of elements in a collection bind. While executing PL/SQL statements, the
Oracle database maintains a cache of PL/SQL statements in the shared SQL area,
and attempts to reuse the cached statement if the same statement is executed again.
Oracle's matching criteria requires that the statement texts be identical, and that the
bind variable data types match. Unfortunately, the type match for strings is
sensitive to the exact byte size specified, and for collection bindings is also sensitive
to the number of elements in the collection. Since mod_plsql binds statements
dynamically, the odds of hitting the shared cache are low, and it may fill up with
near-duplicates and lead to contention for the latch on the shared area. This
parameter reduces that effect by bucketing bind widths to the nearest level.

All numbers specified should be in ascending order. After the last specified size,
subsequent bucket sizes will be assumed to be twice the last one.

The last bucket width must be equal to or less than 4000. This is due to the
restriction imposed by OCI where array bind widths cannot be greater than 4000.

Category

Value

Syntax

PlsqlBindBucketLengths number multiline

Default

4,20,100,400

Example

PlsqlBindBucketLengths 4

PlsqlBindBucketLengths 25

PlsqlBindBucketLengths 125

Advertising