RDB/VMS Relational Database Operator CHANGE_INDEX — VMS RDB_4.0
Changes characteristics of an index.
You can change the following:
o The description text
o Physical characteristics of a sorted index
o Storage map associated with an index
You cannot change a sorted index to a hashed index or vice versa.
Example:
RDO> CHANGE INDEX JH_EMPLOYEE_ID
cont> NODE SIZE 200 PERCENT FILL 80.
Additional information available:
More
To change an index with the CHANGE INDEX statement, you need the Rdb/VMS CHANGE privilege for the relation. You must execute this statement in a read/write transaction. If there is no active transaction and you issue this statement, Rdb/VMS starts a read/write transaction implicitly. Other users are allowed to be attached to the database when you issue the CHANGE INDEX statement.
Format
CHANGE INDEX name ───┬───────────────────────────────┬─────────────┐ └─>
D
E
S
C
R
I
P
T
I
O
N typebox (I)typebox (S) typebox (/)typebox (*) text */ ──┘ │ ┌─────────────────────────────<────────────────────────────────────┘ │ └─┬─────────────>──────────────┬─┬────────────>───────────┬──────> . └─> sorted-index-param-list ─┘ └─> index-store-clause ──┘
Additional information available:
nametextsorted-index-paramindex-store-clause
name
The name of the index you want to change.
text
A text string that adds a comment to the index definition.
sorted-index-param
sorted-index-param-list =
────┬────┬──────────────────>──────────────────────┬───┬─────────>
│ ├─>
N
O
D
E
S
I
Z
E ─────> number-bytes ────────┤ │
│ ├─>
P
E
R
C
E
N
T
F
I
L
L ──────> percentage ──────┤ │
│ └─>
U
S
A
G
E ─────────┬─────>
U
P
D
A
T
E ───┬────┘ │
│ └─────>
Q
U
E
R
Y ────┘ │
│ │
└────────────────────<─────────────────────────────┘
Additional information available:
NODE-SIZE
The size of each index node. The number and level of the resulting index nodes depend on this value, the number and size of the index keys, and the value of the PERCENT FILL clause. If you omit this clause in a CHANGE INDEX statement, the existing value is used.
PERCENT-FILL
Sets the initial percentage of fullness for each node in the index structure. The valid range is 1 to 100 percent.
USAGE-mode
USAGE UPDATE, the default, sets the percent fullness of each index node at 70 percent. USAGE QUERY sets this value at 100 percent. Supplying PERCENT FILL and the USAGE option is allowed in the syntax; however, the USAGE option takes precedence over an explicit PERCENT FILL value.
index-store-clause
index-store-clause STORE ─┬──>
W
I
T
H
I
N ────> storage-area-name ─────────────>─────────┬─> ┌──────┘ │ │ │ └─────>
U
S
I
N
G ───┬────> field-name ───┬──
W
I
T
H
I
N ───────>─────┐ │ └────────── , ───────┘ │ │ ┌───────────────────────────────<─────────────────────────────┘ │ └─┬─> storage-area-name ──>
W
I
T
H
L
I
M
I
T typebox (O)F ─┬> literal ─┬─ typebox (;) ─┬─┐ │ │ └──── , <───┘ │ │ │ └───────────────────────────<──────────────────────────────┘ │ │ ┌─────────────────────────────<────────────────────────────────┘ │ │ │ └─────────────────────> storage-area-name ───────────>────────────┘
Additional information available:
field-name
The name of the field whose value will be used as a limit for partitioning the index across multiple storage areas.
storage-area-name
The name of the storage area in which you want the index stored. You must define this storage area with the DEFINE DATABASE statement before you refer to it in the store clause. If the index is a hashed index, the storage area must have a MIXED page format.
WITH_LIMIT_OF
The maximum value for the index key that will reside in the specified storage area. For multisegmented index keys, specify a literal value for each field. The number of literals in this clause must be less than or equal to the number of fields in the USING clause. Repeat this clause to partition the index entries among multiple storage areas. When you are modifying a multisegmented index using multisegmented keys and use the STORE USING...WITH LIMITS clause, if the values for the first key are all the same, then set the limit for the first key at that value. By doing this, you ensure that the value of the second key determines the storage area in which each record will be stored. Note that the last storage area you specify CANNOT have a WITH LIMIT OF clause associated with it.
Examples
Example 1 The following example changes the index node size to 100 bytes, and sets the initial fullness percentage from 70 percent to 95 percent: RDO> CHANGE INDEX JH_EMPLOYEE_ID cont> NODE SIZE 100 cont> PERCENT FILL 95. Note that JH_EMPLOYEE_ID is a sorted index. You cannot change node size, percent fill, or the USAGE clause for a hashed index. Example 2 The following example changes how the index is stored by specifying a new index-store-clause for the index: RDO> CHANGE INDEX EMPLOYEES_HASH cont> DESCRIPTION IS /* Hashed index for employees */ cont> STORE USING EMPLOYEE_ID cont> WITHIN cont> EMPIDS_LOW WITH LIMIT OF "00400"; cont> EMPIDS_MID WITH LIMIT OF "00800"; cont> EMPIDS_OVER. Example 3 The following example changes the size of each index node and sets the initial fullness percentage for each node in the index structure being changed. It also specifies a storage map definition for the index. RDO> CHANGE INDEX COLL_COLLEGE_CODE cont> NODE SIZE 1250 PERCENT FILL 100 cont> STORE WITHIN EMP_INFO.