Los orígenes de datos con secuencia de claves VSAM son compatibles con el uso de índices de claves alternativos (claves). Los orígenes de datos con secuencia de claves VSAM constan de dos componentes: un componente de índice y otro de datos. El componente de datos contiene los registros de datos reales, mientras que el índice es la clave utilizada para localizar los registros en el origen de datos. A la conjunción de estos componentes se le denomina clúster de base.
Los índices alternativos son estructuras de índice, adicionales e independientes, que permiten acceder a registros en orígenes de datos KSDS VSAM, en base a una clave distinta a la clave primaria del origen de datos. Por ejemplo, normalmente utiliza un origen de datos de personal secuenciado por el número de la Seguridad Social, aunque a veces necesita obtener registros clasificados según la descripción del puesto. El campo de descripción de puesto puede considerarse un índice alternativo. Los índices alternativos deben estar relacionados con el clúster base que están describiendo, mediante una ruta, que está almacenada en un origen de datos independiente.
Al tratarse de una estructura VSAM, el índice alternativo se crea y mantiene en el entorno VSAM. Sin embargo, puede aparecer descrito en su archivo máster, permitiendo aprovechar todas las ventajas de los índices alternativos.
La principal ventaja de estos índices es la eficiencia del rendimiento. Puede utilizarlo como una alternativa de secuencia de recuperación más eficiente o aprovechar su potencial de forma indirecta con pruebas de filtros (IF...LT, IF...LE, IF...GT, IF...GE, IF...EQ, IF...FROM...TO, IF...IS), que se traducen en lecturas directas basadas en el índice alternativo. Además, puede combinar orígenes de datos con el comando JOIN, a través de este índice alternativo.
No tiene por qué identificar la vista indexada de forma explícita para aprovechar las ventajas del índice alternativo. Cuando aparece descrito en el archivo máster, el índice alternativo se utiliza automáticamente.
Para aprovechar un índice alternativo específico durante una solicitud de TABLE, proporcione una prueba WHERE o IF en el campo del índice alternativo que cumpla con los criterios expuestos más arriba. Por ejemplo:
TABLE FILE CUST PRINT SSN WHERE LNAME EQ 'SMITH' END
Como se puede apreciar en el archivo máster de Cómo describir un índice VSAM alternativo, el campo LNAME está definido como un campo de índice alternativo. Los registros del origen de datos se recuperan de acorde a los apellidos; algunos filtrajes IF del campo LNAME resultan en lecturas directas. Tenga en cuenta que, si se omite el nombre del campo de índice alternativo, la clave primaria (si existe) se usa para una lectura secuencial o directa y los índices alternativos se tratan como campos normales.
Los índices alternativos deben estar descritos como campos con FIELDTYPE=I en el archivo máster. El ALIAS del campo de índice alternativo debe ser el nombre del archivo asignado al nombre de la ruta correspondiente. Si están compuestos por partes de formatos diferentes, puede describir los índices alternativos como GROUPs. Recuerde que debe utilizar ALIAS=KEY para describir la clave primaria.
Sólo se puede hacer referencia a un tipo de registro en la solicitud cuando se estén empleando índices alternativos, aunque no existe ninguna restricción en cuanto al número de segmentos OCCURS.
Tenga en cuenta que el nombre de la ruta de la asignación difiere de los nombres del clúster y del índice alternativo.
Si no está seguro de los nombres de las rutas y los índices alternativos asociados a un clúster base determinado, puede emplear la utilidad IDCAMS. (Para más detalles, consulte el manual de IBM llamado Cómo usar comandos y macros de VSAM.)
Tenga en cuenta lo siguiente:
FILENAME = CUST, SUFFIX = VSAM,$ SEGNAME = ROOT, SEGTYPE = S0,$ GROUP = G, ALIAS = KEY, A10, A10,$ FIELD = SSN, SSN, A10, A10,$ FIELD = FNAME, DD1, A10, A10, FIELDTYPE=I,$ FIELD = LNAME, DD2, A10, A10, FIELDTYPE=I,$
En este ejemplo, SSN es una clave primaria, mientras que FNAME y LNAME son índices alternativos. El conjunto de datos de la ruta debe estar asignado al ddname especificado en el ALIAS= de su campo de índice alternativo. En este archivo máster, ALIAS=DD1 y ALIAS=DD2 tienen un asignación que apunta al conjunto de datos de la ruta. FNAME y LNAME deben tener INDEX=I o FIELDTYPE=I codificado en el archivo máster. CUST debe estar asignado al clúster base.
El siguiente ejemplo explica cómo usar IDCAMS para hallar los nombres del índice alternativo y de la ruta, asociados a un clúster base llamado CUST.DATA:
Primero, averigüe los nombres de índices alternativos (AIX) asociados al clúster correspondiente.
IDCAMS input: LISTCAT CLUSTER ENTRIES(CUST.DATA) ALL IDCAMS output (fragments): CLUSTER -------- CUST.DATA ASSOCIATIONS AIX ---------- CUST.INDEX1 AIX ---------- CUST.INDEX2
Con esto obtiene los nombres de los índices alternativos (AIX): CUST.INDEX1 y CUST.INDEX2.
A continuación, averigüe los nombres de rutas asociados al nombre de AIX correspondiente:
IDCAMS input: LISTCAT AIX ENTRIES (CUST.INDEX1 CUST.INDEX2) ALL IDCAMS output (fragments): AIX ---------CUST.INDEX1 ASSOCIATIONS CLUSTER -- CUST.DATA PATH ------CUST.PATH1 AIX ---------CUST.INDEX2 ASSOCIATIONS CLUSTER -- CUST.DATA PATH ------CUST.PATH2
Con esto obtiene los nombres de las rutas: CUST.PATH1 y CUST.PATH2.
Esta información, junto con el comando TSO DDNAME, puede utilizarse para asignar correctamente su índice alternativo.
WebFOCUS |