1 – ALLOCATION
Syntax options:
ALLOCATION IS n BLOCK | ALLOCATION IS n BLOCKS
Specifies the initial allocation of the row cache file (.rdc) to
which cached rows are written.
If the ALLOCATION clause is not specified, the default allocation
in blocks is approximately 40 percent of the CACHE SIZE for this
cache.
This clause is ignored if the row cache is defined to checkpoint
to the database.
2 – CACHE
Creates a row cache.
3 – CACHE_SIZE
Syntax options:
CACHE SIZE IS n ROW | CACHE SIZE IS n ROWS
Specifies the number of rows allocated to the row cache. As the
row cache fills, rows more recently referenced are retained in
the row cache while those not referenced recently are discarded.
Adjusting the allocation of the row cache helps to retain
important rows in memory. If not specified, the default is 1000
rows.
4 – CHECKPOINT
Syntax options:
CHECKPOINT ALL ROWS TO BACKING FILE
CHECKPOINT UPDATED ROWS TO BACKING FILE
CHECKPOINT UPDATED ROWS TO DATABASE
Specifies the source records and target for checkpoint operations
for the row cache. If ALL ROWS is specified, then the records
written during each checkpoint operation are both the modified
and the unmodified rows in the row cache. If UPDATED ROWS is
specified, then just the modified rows in the row cache are
checkpointed each time.
If the target of the checkpoint operation is BACKING FILE, then
the row cache server (RCS) process writes the row cache entries
to the backing (.rdc) files. The row cache LOCATION, ALLOCATION,
and EXTENT clauses are used to create the backing files. Upon
recovery from a node failure, the database recovery process is
able to repopulate the row caches in memory from the rows found
in the backing files.
If the target is DATABASE, then the updated rows (only UPDATED
ROWS is allowed) are written back to the database. The row
cache LOCATION, ALLOCATION, and EXTENT clauses are ignored. Upon
recovery from a node failure, the database recovery process has
no data on the contents of the row cache. Therefore, it does not
repopulate the row caches in memory.
This CHECKPOINT clause overrides the database-level CHECKPOINT
clause.
5 – EXTENT
Syntax options:
EXTENT IS n BLOCK | EXTENT IS n BLOCKS
Specifies the file extent size for the row cache file (.rdc).
If the EXTENT clause is not specified, the default number of
blocks is CACHE SIZE * 127 for this cache.
This clause is ignored if the row cache is defined to checkpoint
to the database.
6 – LOCATION
Syntax options:
LOCATION IS directory-spec
Specifies the name of the directory to which row cache
information is written. The database system generates a file
name (row-cache-name.rdc) automatically for each row cache at
checkpoint time. Specify a device name and directory name only,
enclosed within single quotation marks. By default, the location
is the directory of the database root file. These .rdc files are
permanent database files.
This LOCATION clause overrides a previously specified location at
the database level.
This clause is ignored if the row cache is defined to checkpoint
to the database.
7 – NO_LOCATION
Removes the location previously specified in a LOCATION IS clause
for the row cache. If you specify NO LOCATION, the row cache
location becomes the directory of the database root file.
This clause is ignored if the row cache is defined to checkpoint
to the database.
8 – NUMBER_OF_RESERVED_ROWS
Syntax options:
NUMBER OF RESERVED ROWS IS n
Specifies the maximum number of cache rows that each user can
reserve for insertion into the cache. Processes reserve, or
allocate, entries in a cache to be used when inserting rows into
the cache. To improve efficiency, multiple entries are reserved
at one once. Once a user's reserved list becomes depleted, Oracle
Rdb attempts to reserve another group of entries. The default is
20 rows.
This value is also used when searching for available slots in a
row cache. The entire row cache is not searched on the initial
pass. This value specifies the maximum number of rows that are
searched for a free slot. If at least one free slot is found, the
insert operation can proceed. If no free slots are found in this
initial search, Oracle Rdb continues searching through the cache
until it finds a free slot.
9 – NUMBER_OF_SWEEP_ROWS
Syntax options:
NUMBER OF SWEEP ROWS IS n
Specifies the number of modified rows that will be written from
the row cache back to the database by the row cache server (RCS)
process during a sweep operation. When the RCS is notified that
a cache is "full" of modified data, the RCS starts a sweep to
make space available in the cache for subsequent transactions
to be able to insert rows into the cache. Oracle Corporation
recommends that you initially specify the number of sweep rows
to be approximately 5 percent of the total number of rows in
the cache. Then monitor performance and adjust the number of
sweep rows, if necessary. Allowable values must be in the range 2
through 524288. If not specified, the default is 3,000 rows.
10 – ROW_LENGTH
Syntax options:
ROW LENGTH IS n BYTES
Specifies the length of each row allocated to the row cache. Rows
are not cached if they are too large for the row cache. area. The
ROW LENGTH is an aligned longword rounded up to the next multiple
of 4 bytes.
The maximum row length in a row cache is 65535 bytes.
When the name of the cache matches the name of an existing
logical area, ADD CACHE will calculate ROW LENGTH from the size
of the table row, or the size of the index node (for SORTED
RANKED, or UNIQUE SORTED indices). This cache is known as a
logical area cache.
11 – ROW_REPLACEMENT
Syntax options:
ROW REPLACEMENT IS ENABLED | ROW REPLACEMENT IS DISABLED
Specifies whether or not Oracle Rdb replaces rows in the cache.
When ROW REPLACEMENT IS ENABLED, rows are replaced when the
row cache becomes full. When ROW REPLACEMENT IS DISABLED, rows
are not replaced when the row cache is full. The type of row
replacement policy depends upon the application requirements for
each cache.
The default is ENABLED.
12 – ROW_SNAPSHOT_IS_DISABLED
Disables storing snapshot copies of rows within the cache.
13 – ROW_SNAPSHOT_IS_ENABLED
The ROW SNAPSHOT IS ENABLED (CACHE SIZE IS n ROWS) option enables
storage of snapshot copies of rows within the cache and specifies
the number of snapshot "slots" to allocate for the cache.
The default for new caches, and existing caches is to have this
feature disabled.
If you do not specify the CACHE SIZE clause for the ROW SNAPSHOT
IS ENABLED option, Oracle Rdb creates a cache that can contain up
to 1000 snapshot rows.
14 – SHARED_MEMORY
Syntax options:
SHARED MEMORY IS SYSTEM | SHARED MEMORY IS PROCESS
Determines whether cache global sections are created in system
space or process space. The default is SHARED MEMORY IS PROCESS.
When you use cache global sections created in the process
space, you and other users share physical memory and the OpenVMS
operating system maps a row cache to a private address space for
each user. As a result, all users are limited by the free virtual
address range and each use a percentage of memory in overhead. If
many users are accessing the database, the overhead can be high.
When many users are accessing the database, consider using the
SHARED MEMORY IS SYSTEM clause. This gives users more physical
memory because they share the system space of memory and there is
none of the overhead associated with the process space of memory.
15 – SHARED_MEMORY_IS_PROCESS_RESIDENT
The SHARED MEMORY clause determines whether database root global
sections (including global buffers when enabled) or whether the
cache global sections are created in system space or process
space. The RESIDENT option extends the PROCESS option by making
the global section memory resident.