Vsam-alternate-index
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で実行し、インデックスを構築します。