VSAM - Indeks Alternatif

Indeks alternatif adalah indeks tambahan yang dibuat untuk kumpulan data KSDS / ESDS selain indeks utamanya. Indeks alternatif menyediakan akses ke rekaman dengan menggunakan lebih dari satu kunci. Kunci indeks alternatif dapat berupa kunci non-unik, dapat memiliki duplikat.

Pembuatan Indeks Alternatif

Langkah-langkah berikut digunakan untuk membuat Indeks Alternatif -

  • Tentukan Indeks Alternatif
  • Tentukan Path
  • Indeks Bangunan

Tentukan Indeks Alternatif

Indeks Alternatif ditentukan dengan menggunakan DEFINE AIX perintah.

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

Sintaks di atas menunjukkan parameter yang digunakan saat menentukan Indeks Alternatif. Kita telah membahas beberapa parameter dalam Define Cluster Module dan beberapa parameter baru digunakan dalam mendefinisikan Indeks Alternatif yang akan kita bahas di sini -

Sr Tidak Parameter dengan Deskripsi
1

DEFINE AIX

Perintah Define AIX digunakan untuk mendefinisikan Alternate Index dan menentukan atribut parameter untuk komponennya.

2

NAME

NAMA menentukan nama Indeks Alternatif.

3

RELATE

RELATE menentukan nama cluster VSAM yang indeks alternatifnya dibuat.

4

NONUNIQUEKEY / UNIQUEKEY

UNIQUEKEY menentukan bahwa indeks alternatif itu unik dan NONUNIQUEKEY menentukan bahwa duplikat mungkin ada.

5

UPGRADE / NOUPGRADE

UPGRADE menentukan bahwa indeks alternatif harus dimodifikasi jika cluster dasar dimodifikasi dan NOUPGRADE menentukan bahwa indeks alternatif harus dibiarkan sendiri jika cluster dasar dimodifikasi.

Contoh

Berikut adalah contoh dasar untuk menunjukkan bagaimana mendefinisikan Indeks Alternatif di 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))
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membuat Indeks Alternatif MY.VSAM.KSDSAIX.

Tentukan Path

Define Path digunakan untuk menghubungkan indeks alternatif ke cluster dasar. Saat menentukan jalur, kami menentukan nama jalur dan indeks alternatif yang terkait dengan jalur ini.

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

Sintaks di atas memiliki dua parameter. NAME digunakan untuk menentukan Nama Jalur Indeks Alternatif dan PATHENTRY digunakan untuk menentukan Nama Indeks Alternatif.

Contoh

Berikut adalah contoh dasar untuk mendefinisikan Path di 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))
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membuat jalur antara Indeks Alternatif ke cluster dasar.

Indeks Bangunan

Perintah BLDINDEX digunakan untuk membangun indeks alternatif. BLDINDEX membaca semua catatan dalam kumpulan data terindeks VSAM (atau cluster dasar) dan mengekstrak data yang diperlukan untuk membuat indeks alternatif.

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

Sintaks di atas memiliki dua parameter. INDATASET digunakan untuk menentukan Nama Cluster VSAM dan OUTDATASET digunakan untuk menentukan Nama Indeks Alternatif.

Contoh

Berikut adalah contoh dasar untuk Membangun Indeks di 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))
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membangun indeks.