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.