VSAM - Chỉ mục thay thế

Chỉ mục thay thế là chỉ mục bổ sung được tạo cho tập dữ liệu KSDS / ESDS ngoài chỉ mục chính của chúng. Chỉ mục thay thế cung cấp quyền truy cập vào các bản ghi bằng cách sử dụng nhiều hơn một khóa. Khóa của chỉ mục thay thế có thể là một khóa không phải là duy nhất, nó có thể có các bản sao.

Tạo chỉ mục thay thế

Các bước sau được sử dụng để tạo Chỉ mục thay thế:

  • Xác định chỉ mục thay thế
  • Xác định đường dẫn
  • Xây dựng chỉ mục

Xác định chỉ mục thay thế

Chỉ mục thay thế được xác định bằng cách sử dụng DEFINE AIX chỉ huy.

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

Cú pháp trên hiển thị các tham số được sử dụng trong khi xác định Chỉ mục thay thế. Chúng ta đã thảo luận về một số tham số trong Mô-đun cụm xác định và một số tham số mới được sử dụng để xác định Chỉ mục thay thế mà chúng ta sẽ thảo luận ở đây -

Sr.No Tham số với Mô tả
1

DEFINE AIX

Lệnh Define AIX được sử dụng để xác định Chỉ số thay thế và chỉ định các thuộc tính tham số cho các thành phần của nó.

2

NAME

NAME chỉ định tên của Chỉ mục thay thế.

3

RELATE

RELATE chỉ định tên của cụm VSAM mà chỉ mục thay thế được tạo.

4

NONUNIQUEKEY / UNIQUEKEY

UNIQUEKEY chỉ định rằng chỉ mục thay thế là duy nhất và NONUNIQUEKEY chỉ định rằng các bản sao có thể tồn tại.

5

UPGRADE / NOUPGRADE

UPGRADE chỉ định rằng chỉ mục thay thế sẽ được sửa đổi nếu cụm cơ sở được sửa đổi và NOUPGRADE chỉ định rằng chỉ mục thay thế nên được để riêng nếu cụm cơ sở được sửa đổi.

Thí dụ

Sau đây là một ví dụ cơ bản để chỉ ra cách xác định Chỉ mục thay thế trong 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))
/*

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ tạo Chỉ mục thay thế MY.VSAM.KSDSAIX.

Xác định đường dẫn

Định nghĩa Đường dẫn được sử dụng để liên kết chỉ mục thay thế với cụm cơ sở. Trong khi xác định đường dẫn, chúng tôi chỉ định tên của đường dẫn và chỉ mục thay thế có liên quan đến đường dẫn này.

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

Cú pháp trên có hai tham số. NAME được sử dụng để chỉ định Tên đường dẫn chỉ mục thay thế và PATHENTRY được sử dụng để chỉ định Tên chỉ mục thay thế.

Thí dụ

Sau đây là một ví dụ cơ bản để xác định Đường dẫn trong 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))
/*

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ tạo đường dẫn giữa Chỉ mục thay thế đến cụm cơ sở.

Xây dựng chỉ mục

Lệnh BLDINDEX được sử dụng để xây dựng chỉ mục thay thế. BLDINDEX đọc tất cả các bản ghi trong tập dữ liệu được lập chỉ mục VSAM (hoặc cụm cơ sở) và trích xuất dữ liệu cần thiết để xây dựng chỉ mục thay thế.

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

Cú pháp trên có hai tham số. INDATASET được sử dụng để chỉ định Tên cụm VSAM và OUTDATASET được sử dụng để chỉ định Tên chỉ mục thay thế.

Thí dụ

Sau đây là một ví dụ cơ bản để xây dựng chỉ mục trong 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))
/*

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ xây dựng chỉ mục.