VSAM - indeks alternatywny

Indeks alternatywny to dodatkowy indeks, który jest tworzony dla zbiorów danych KSDS / ESDS oprócz ich indeksu podstawowego. Indeks alternatywny zapewnia dostęp do rekordów przy użyciu więcej niż jednego klucza. Klucz alternatywnego indeksu może być kluczem nieunikalnym, może mieć duplikaty.

Utworzenie indeksu alternatywnego

Poniższe kroki służą do tworzenia indeksu alternatywnego -

  • Zdefiniuj indeks alternatywny
  • Zdefiniuj ścieżkę
  • Indeks budynku

Zdefiniuj indeks alternatywny

Indeks alternatywny jest definiowany za pomocą DEFINE AIX Komenda.

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))

Powyższa składnia przedstawia parametry używane podczas definiowania indeksu alternatywnego. Omówiliśmy już niektóre parametry w Define Cluster Module, a niektóre z nowych parametrów są używane do definiowania alternatywnego indeksu, który omówimy tutaj -

Sr.No Parametry z opisem
1

DEFINE AIX

Polecenie Define AIX służy do definiowania indeksu alternatywnego i określania atrybutów parametrów dla jego komponentów.

2

NAME

NAZWA określa nazwę indeksu alternatywnego.

3

RELATE

RELATE określa nazwę klastra VSAM, dla którego tworzony jest indeks alternatywny.

4

NONUNIQUEKEY / UNIQUEKEY

UNIQUEKEY określa, że ​​indeks alternatywny jest unikalny, a NONUNIQUEKEY określa, że ​​mogą istnieć duplikaty.

5

UPGRADE / NOUPGRADE

UPGRADE określa, że ​​indeks alternatywny powinien zostać zmodyfikowany, jeśli klaster podstawowy zostanie zmodyfikowany, a NOUPGRADE określa, że ​​indeksy alternatywne powinny zostać pozostawione bez zmian, jeśli zostanie zmodyfikowany klaster podstawowy.

Przykład

Poniżej znajduje się podstawowy przykład pokazujący, jak zdefiniować indeks alternatywny w JCL -

//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))
/*

Jeśli wykonasz powyższe JCL na serwerze mainframe. Powinien zostać uruchomiony z MAXCC = 0 i utworzy indeks alternatywny MY.VSAM.KSDSAIX.

Zdefiniuj ścieżkę

Zdefiniuj ścieżkę służy do powiązania indeksu alternatywnego z klastrem podstawowym. Definiując ścieżkę podajemy nazwę ścieżki oraz alternatywny indeks, z którym ta ścieżka jest powiązana.

DEFINE PATH                        -
NAME(alternate-index-path-name)    -
PATHENTRY(alternate-index-name))

Powyższa składnia ma dwa parametry. NAZWA służy do określenia alternatywnej nazwy ścieżki indeksu, a PATHENTRY do określenia alternatywnej nazwy indeksu.

Przykład

Poniżej znajduje się podstawowy przykład definiowania ścieżki w 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))
/*

Jeśli wykonasz powyższe JCL na serwerze mainframe. Powinien działać z MAXCC = 0 i utworzy ścieżkę między indeksem alternatywnym a podstawowym klastrem.

Indeks budynku

Polecenie BLDINDEX służy do budowania indeksu alternatywnego. BLDINDEX odczytuje wszystkie rekordy w indeksowanym zestawie danych VSAM (lub klastrze podstawowym) i wyodrębnia dane potrzebne do zbudowania indeksu alternatywnego.

BLDINDEX                           -
INDATASET(vsam-cluster-name)       -
OUTDATASET(alternate-index-name))

Powyższa składnia ma dwa parametry. INDATASET służy do określania nazwy klastra VSAM, a OUTDATASET służy do określania alternatywnej nazwy indeksu.

Przykład

Poniżej znajduje się podstawowy przykład tworzenia indeksu w 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))
/*

Jeśli wykonasz powyższe JCL na serwerze mainframe. Powinien zostać wykonany z MAXCC = 0 i zbuduje indeks.