This section describes new Oracle Rdb logical names and changes to
other Oracle Rdb logical names. For complete information on Oracle Rdb
logical names, see the Oracle Rdb Guide to Database Performance and
Tuning.
1 – RDMS$BIND VM SEGMENT Changed
The logical names RDMS$BIND_VM_SEGMENT changed to RDM$BIND_
VM_SEGMENT, that is, without the S. This logical name prevents
memory fragmentation and allows certain applications which would
otherwise run out of virtual memory to execute correctly.
NOTE
The RDM$BIND_VM_SEGMENT logical name is not for general
use, as preserving larger block sizes (by preventing
fragmentation) may cause problems for some applications.
To use this logical name use the DCL command as follows:
$ DEFINE RDM$BIND_VM_SEGMENT 1
Use this logical name either on the system experiencing the
problem or in some other appropriate place such as in the
LOGIN.COM file of the users experiencing the difficulty.
2 – RDMS$BIND_QG_TIMEOUT
The RDMS$BIND_QG_TIMEOUT logical name is used to set the query
optimizer elapsed time limit. The elapsed time that the query
optimizer spends compiling a query can now be limited by defining
the logical name RDMS$BIND_QG_TIMEOUT and specifying a value
in seconds. A timer is established which will cause the query
compilation to be aborted if too much elapsed time has passed.
This logical name is translated at attach time and supersedes all
options specified in the application.
The following DCL command is used to define the RDMS$BIND_QG_
TIMEOUT logical name and set a value of 120 seconds.
$ DEFINE RDMS$BIND_QG_TIMEOUT 120
In this example, the query optimizer will abort the query
compilation after 120 seconds have elapsed.
See the RDMS$BIND_QG_REC_LIMIT help topic at this level for
information on how to limit the number of records delivered
during query processing.
3 – RDMS$BIND_QG_REC_LIMIT
The RDMS$BIND_QG_REC_LIMIT logical name is used to set the
query optimizer row number delivery limit. The number of rows
delivered during query processing can now be limited by defining
the logical name RDMS$BIND_QG_REC_LIMIT and specifying a value
of n records. Defining this logical name is useful for any
query that returns large quantities of rows and is likely to
do large numbers of I/O operations. This limit counts the rows
being returned by the query. Note that this value is independent
of the number of records read by the application, for example
intermediate records for a join, or component records for an
aggregate. It is very similar to the LIMIT TO clause in SQL.
However, if this limit is exceeded, an error message is returned.
This logical name is translated at attach time and supersedes all
options specified in the application.
The following DCL command is used to define the RDMS$BIND_QG_REC_
LIMIT logical name and set a value of 20 records:
$ DEFINE RDMS$BIND_QG_REC_LIMIT 20
In this example, the query optimizer will terminate processing
the query after 20 records are returned.
See the RDMS$BIND_QG_TIMEOUT help topic at this level for
information on how to limit the elapsed time that the query
optimizer can spend compiling a query.
4 – RDM$BIND_CKPT_TRANS_INTERVAL
You can use the RDM$BIND_CKPT_TRANS_INTERVAL logical name to
define a process-specific checkpoint interval value when undo
/redo recovery processing is enabled. By default, a process
checkpoints when the AIJ block size limit is reached or the time
interval limit is exceeded, whichever occurs first. The RDM$BIND_
CKPT_TRANS_INTERVAL logical name uses the number of transactions
as the checkpoint trigger. For example, if you define RDM$BIND_
CKPT_TRANS_INTERVAL to be 10, the process on which the logical
is defined checkpoints after committing ten transactions IF the
transaction limit is reached before the block size or time limits
are exceeded.
5 – RDMS$USE_OLD_UPDATE_RULES
This section discusses use of the RDMS$USE_OLD_UPDATE_RULES
logical name to preserve update behavior. You cannot modify or
erase records in a relation if the relation is joined with other
relations.
NOTE
This restriction applies to RDO, RDBPRE, and RDML only. SQL
syntax does not allow this type of update.
However, updates to a relation are allowed if you join the
relation with other relations in a subquery.
This update restriction can cause applications that depend on
the previous update behavior to fail unless update queries are
modified. You can use the RDMS$USE_OLD_UPDATE_RULES logical
name to retain the previous update behavior, then modify your
applications.
Define the RDMS$USE_OLD_UPDATE_RULES logical name to be 1, as
shown below, to enforce the old update rules.
$ DEFINE RDMS$USE_OLD_UPDATE_RULES 1
Support for this logical name will be removed in a future release
of Oracle Rdb.
6 – RDMS$BIND WORK FILE Changed
The RDMS$BIND_WORK_FILE logical name is used to redirect the
location of temporary files that Oracle Rdb sometimes creates for
use in matching operations. Oracle Rdb creates the file when the
process running the query runs out of virtual memory, and deletes
the file once the query is completed.
You can define RDMS$BIND_WORK_FILE and specify a device name and
directory. This enables the file to use resource identifiers for
disk quota allocation.
The following example shows how to assign the location of
temporary files to a specific device and directory.
$ DEFINE RDMS$BIND_WORK_FILE WORK$DISK:[RDB.WORK]