Альтернативный индекс — это дополнительный индекс, который создается для наборов данных 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, и он будет строить индекс.