Учебники

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 Параметры с описанием
1

ОПРЕДЕЛИТЬ ЭКС

Команда Define AIX используется для определения альтернативного индекса и определения атрибутов параметров для его компонентов.

2

НАЗВАНИЕ

NAME указывает имя альтернативного индекса.

3

ОТНОСИТЬСЯ

RELATE указывает имя кластера VSAM, для которого создается альтернативный индекс.

4

NONUNIQUEKEY / UNIQUEKEY

UNIQUEKEY указывает, что альтернативный индекс уникален, а NONUNIQUEKEY указывает, что дубликаты могут существовать.

5

ОБНОВЛЕНИЕ / НОПГРАД

UPGRADE указывает, что альтернативный индекс должен быть изменен, если базовый кластер изменен, а NOUPGRADE указывает, что альтернативные индексы должны быть оставлены в покое, если базовый кластер изменен.

ОПРЕДЕЛИТЬ ЭКС

Команда Define AIX используется для определения альтернативного индекса и определения атрибутов параметров для его компонентов.

НАЗВАНИЕ

NAME указывает имя альтернативного индекса.

ОТНОСИТЬСЯ

RELATE указывает имя кластера VSAM, для которого создается альтернативный индекс.

NONUNIQUEKEY / UNIQUEKEY

UNIQUEKEY указывает, что альтернативный индекс уникален, а NONUNIQUEKEY указывает, что дубликаты могут существовать.

ОБНОВЛЕНИЕ / НОПГРАД

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

Если вы выполните вышеупомянутый JCL на сервере мейнфреймов. Он должен выполняться с MAXCC = 0 и создать альтернативный индекс MY.VSAM.KSDSAIX.

Определить путь

Определить путь используется для связи альтернативного индекса с базовым кластером. При определении пути мы указываем имя пути и альтернативный индекс, с которым связан этот путь.

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

Выше синтаксис имеет два параметра. 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))
/*

Если вы выполните вышеупомянутый JCL на сервере мейнфреймов. Он должен выполняться с MAXCC = 0, и он создаст путь между альтернативным индексом и базовым кластером.

Индекс здания

Команда BLDINDEX используется для создания альтернативного индекса. BLDINDEX считывает все записи в индексированном наборе данных VSAM (или базовом кластере) и извлекает данные, необходимые для создания альтернативного индекса.

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

Выше синтаксис имеет два параметра. 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))
/*

Если вы выполните вышеупомянутый JCL на сервере мейнфреймов. Он должен выполняться с MAXCC = 0, и он будет строить индекс.