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.