Vsam-alternate-index

提供:Dev Guides
移動先:案内検索

VSAM-代替索引

代替インデックスは、プライマリインデックスに加えて、KSDS/ESDSデータセット用に作成される追加のインデックスです。 代替インデックスは、複数のキーを使用してレコードへのアクセスを提供します。 代替インデックスのキーは一意でないキーにすることも、重複させることもできます。

代替インデックスの作成

次の手順を使用して、代替インデックスを作成します-

  • 代替インデックスの定義
  • パスを定義
  • 建物指数

代替インデックスの定義

代替索引は、 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))

上記の構文は、代替索引の定義中に使用されるパラメーターを示しています。 クラスターモジュールの定義でいくつかのパラメーターについて既に説明しており、新しいパラメーターのいくつかは、ここで説明する代替インデックスの定義に使用されます-

Sr.No Parameters with Description
1

DEFINE AIX

Define AIXコマンドを使用して、代替索引を定義し、そのコンポーネントのパラメーター属性を指定します。

2

NAME

NAMEは、代替インデックスの名前を指定します。

3

RELATE

RELATEは、代替索引が作成されるVSAMクラスターの名前を指定します。

4

NONUNIQUEKEY/UNIQUEKEY

UNIQUEKEYは代替インデックスが一意であることを指定し、NONUNIQUEKEYは重複が存在する可能性があることを指定します。

5

UPGRADE/NOUPGRADE

UPGRADEは、基本クラスターが変更された場合に代替索引を変更することを指定し、NOUPGRADEは、基本クラスターが変更された場合に代替索引をそのままにすることを指定します。

以下は、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))
/*

Mainframesサーバーで上記のJCLを実行する場合。 MAXCC = 0で実行され、MY.VSAM.KSDSAIX代替インデックスが作成されます。

パスを定義

パスの定義は、代替インデックスを基本クラスターに関連付けるために使用されます。 パスを定義するときに、パスの名前と、このパスが関連付けられている代替インデックスを指定します。

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

上記の構文には2つのパラメーターがあります。 NAMEは代替索引のパス名を指定するために使用され、PATHENTRYは代替索引の名前を指定するために使用されます。

以下は、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))
/*

Mainframesサーバーで上記のJCLを実行する場合。 MAXCC = 0で実行する必要があり、代替インデックスと基本クラスターの間にパスを作成します。

建物指数

BLDINDEXコマンドを使用して、代替索引を作成します。 BLDINDEXは、VSAMインデックス付きデータセット(またはベースクラスター)のすべてのレコードを読み取り、代替インデックスの構築に必要なデータを抽出します。

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

上記の構文には2つのパラメーターがあります。 INDATASETを使用してVSAMクラスター名を指定し、OUTDATASETを使用して代替インデックス名を指定します。

以下は、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))
/*

Mainframesサーバーで上記のJCLを実行する場合。 MAXCC = 0で実行し、インデックスを構築します。