vsam

Chỉ mục thay thế là chỉ mục bổ sung được tạo cho bộ 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 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à khóa không phải là duy nhất, nó có thể có các bản sao.

To ch mc thay thế

Các bước sau đây đượ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
  • chỉ mục tòa nhà

Xác định ch mc thay thế

Chỉ mục thay thế được xác định bằng lệnh DEFINE AIX

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 Define Cluster Module 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 –

Sơ KhôngThông số với Mô tả
1XÁC ĐỊNH AIX Lệnh Define AIX được sử dụng để xác định Chỉ mục thay thế và chỉ định các thuộc tính tham số cho các thành phần của nó.
2TÊN NAME chỉ định tên của Chỉ mục thay thế.
3KỂ LẠI LIÊN QUAN chỉ định tên của cụm VSAM mà chỉ mục thay thế được tạo.
4KHÓA KHÔNG ĐƠN VỊ / UNIQUEKEY UNIQUEKEY chỉ định rằng chỉ mục thay thế là duy nhất và NONIQUEKEY chỉ định rằng có thể tồn tại các bản sao.
5NÂNG CẤP / KHÔNG NÂNG CẤP 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 các chỉ mục thay thế sẽ được để yên nếu cụm cơ sở được sửa đổi.

Ví 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 dn

Đường dẫn xác định đượ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ế mà đường dẫn này có liên quan.

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ế.

Ví d

Sau đây là một ví dụ cơ bản để định nghĩa Path 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ở.

ch mc tòa nhà

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 bộ 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 để tạo 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ế.

Ví 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.

VSAM – Danh mục (xem thêm)

Trả lời