VSAM - Alternativer Index
Alternativer Index ist der zusätzliche Index, der zusätzlich zu seinem Primärindex für KSDS / ESDS-Datasets erstellt wird. Ein alternativer Index ermöglicht den Zugriff auf Datensätze mithilfe mehrerer Schlüssel. Der Schlüssel des alternativen Index kann ein nicht eindeutiger Schlüssel sein und Duplikate enthalten.
Erstellung eines alternativen Index
Die folgenden Schritte werden verwendet, um einen alternativen Index zu erstellen:
- Alternativen Index definieren
- Pfad definieren
- Gebäudeindex
Alternativen Index definieren
Alternativer Index wird mit definiert DEFINE AIX Befehl.
DEFINE AIX -
(NAME(alternate-index-name) -
RELATE(vsam-file-name) -
CISZ(number) -
FREESPACE(CI-Percentage,CA-Percentage) -
KEYS(length offset) -
NONUNIQUEKEY / UNIQUEKEY -
UPGRADE / NOUPGRADE -
RECORDSIZE(average maximum)) -
DATA -
(NAME(vsam-file-name.data)) -
INDEX -
(NAME(vsam-file-name.index))
Die obige Syntax zeigt die Parameter, die beim Definieren des alternativen Index verwendet werden. Wir haben bereits einige Parameter im Modul "Cluster definieren" erläutert und einige der neuen Parameter werden zur Definition des alternativen Index verwendet, den wir hier erläutern werden.
Sr.Nr. | Parameter mit Beschreibung |
---|---|
1 | DEFINE AIX Der Befehl AIX definieren wird verwendet, um den alternativen Index zu definieren und Parameterattribute für seine Komponenten anzugeben. |
2 | NAME NAME gibt den Namen des alternativen Index an. |
3 | RELATE RELATE gibt den Namen des VSAM-Clusters an, für den der alternative Index erstellt wird. |
4 | NONUNIQUEKEY / UNIQUEKEY UNIQUEKEY gibt an, dass der alternative Index eindeutig ist, und NONUNIQUEKEY gibt an, dass möglicherweise Duplikate vorhanden sind. |
5 | UPGRADE / NOUPGRADE UPGRADE gibt an, dass der alternative Index geändert werden soll, wenn der Basiscluster geändert wird, und NOUPGRADE gibt an, dass die alternativen Indizes in Ruhe gelassen werden sollen, wenn der Basiscluster geändert wird. |
Beispiel
Das folgende grundlegende Beispiel zeigt, wie Sie einen alternativen Index in JCL definieren.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE AIX (NAME(MY.VSAM.KSDSAIX) -
RELATE(MY.VSAM.KSDSFILE) -
CISZ(4096) -
FREESPACE(20,20) -
KEYS(20,7) -
NONUNIQUEKEY -
UPGRADE -
RECORDSIZE(80,80)) -
DATA(NAME(MY.VSAM.KSDSAIX.DATA)) -
INDEX(NAME(MY.VSAM.KSDSAIX.INDEX))
/*
Wenn Sie die obige JCL auf dem Mainframes-Server ausführen. Es sollte mit MAXCC = 0 ausgeführt werden und erstellt den alternativen Index MY.VSAM.KSDSAIX.
Pfad definieren
Pfad definieren wird verwendet, um den alternativen Index mit dem Basiscluster zu verknüpfen. Bei der Definition des Pfads geben wir den Namen des Pfads und den alternativen Index an, auf den sich dieser Pfad bezieht.
DEFINE PATH -
NAME(alternate-index-path-name) -
PATHENTRY(alternate-index-name))
Die obige Syntax hat zwei Parameter. NAME wird verwendet, um den alternativen Indexpfadnamen anzugeben, und PATHENTRY wird verwendet, um den alternativen Indexnamen anzugeben.
Beispiel
Im Folgenden finden Sie ein grundlegendes Beispiel zum Definieren des Pfads in der JCL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE PATH -
NAME(MY.VSAM.KSDSAIX.PATH) -
PATHENTRY(MY.VSAM.KSDSAIX))
/*
Wenn Sie die obige JCL auf dem Mainframes-Server ausführen. Es sollte mit MAXCC = 0 ausgeführt werden und erstellt einen Pfad zwischen dem alternativen Index und dem Basiscluster.
Gebäudeindex
Mit dem Befehl BLDINDEX wird der alternative Index erstellt. BLDINDEX liest alle Datensätze im VSAM-indizierten Datensatz (oder Basiscluster) und extrahiert die Daten, die zum Erstellen des alternativen Index erforderlich sind.
BLDINDEX -
INDATASET(vsam-cluster-name) -
OUTDATASET(alternate-index-name))
Die obige Syntax hat zwei Parameter. INDATASET wird verwendet, um den VSAM-Clusternamen anzugeben, und OUTDATASET wird verwendet, um den alternativen Indexnamen anzugeben.
Beispiel
Im Folgenden finden Sie ein grundlegendes Beispiel für die Erstellung eines Index in JCL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
BLDINDEX -
INDATASET(MY.VSAM.KSDSFILE) -
OUTDATASET(MY.VSAM.KSDSAIX))
/*
Wenn Sie die obige JCL auf dem Mainframes-Server ausführen. Es sollte mit MAXCC = 0 ausgeführt werden und erstellt den Index.