Recuperación automática indexada

Cómo:

Referencia:

La recuperación automática indexada (AUTOINDEX) optimiza la velocidad de recuperación de datos en orígenes de datos FOCUS. Para aprovechar la recuperación automática indexada, una solicitud TABLE debe contener una prueba de igualdad o de rango en un campo indexado en el segmento más alto referenciado en la solicitud.

Este método no está soportado si una:

Para más información sobre el parámetro AUTOINDEX, consulte el manual Cómo desarrollar aplicaciones de informes .


Principio de página

x
Sintaxis: Cómo Utilizar la recuperación indexada
SET AUTOINDEX = {ON|OFF}

donde:

ON

Utiliza la recuperación indexada de datos para optimizar la velocidad siempre que sea posible. La solicitud debe contener una prueba de igualdad o de rango en un campo indexado en el segmento más alto referenciado en la solicitud. ON es el valor predeterminado.

OFF

Utiliza recuperación de datos secuencial a no ser que una solicitud especifique una vista indexada (TABLE FILE filename.indexed_fieldname) y contiene una prueba de igualdad en indexed_fieldname. En ese caso, la recuperación indexada de datos se realiza automáticamente.


Principio de página

x
Referencia: Notas sobre el uso para la recuperación indexada


Ejemplo: Cómo utilizar la recuperación indexada

El archivo Máster a continuación se referencia en los ejemplos siguientes:

FILENAME=SALES,SUFFIX=FOC,
  SEGNAME=STOR_SEG,SEGTYPE=S1,
    FIELDNAME=AREA,ALIAS=LOC,FORMAT=A1,$
  SEGNAME=DATE_SEG,PARENT=STOR_SEG,SEGTYPE=SH1,
    FIELDNAME=DATE,ALIAS=DTE,FORMAT=A4MD, $
  SEGNAME=DEPT,PARENT=DATE_SEG,SEGTYPE=S1,
    FIELDNAME=DEPARTMENT,ALIAS=DEPT,FORMAT=A5,FIELDTYPE=I,$
    FIELDNAME=DEPT_CODE,ALIAS=DCODE,FORMAT=A3,FIELDTYPE=I,$
    FIELDNAME=PROD_TYPE,ALIAS=PTYPE,FORMAT=A10,FIELDTYPE=I,$
  SEGNAME=INVENTORY,PARENT=DEPT,SEGTYPE=S1,$
    FIELDNAME=PROD_CODE,ALIAS=PCODE,FORMAT=A3,FIELDTYPE=I,$
    FIELDNAME=UNIT_SOLD,ALIAS=SOLD,FORMAT=I5,$
    FIELDNAME=RETAIL_PRICE,ALIAS=RP,FORMAT=D5.2M,$
    FIELDNAME=DELIVER_AMT,ALIAS=SHIP,FORMAT=I5,$

El procedimiento siguiente contiene una prueba de igualdad en DEPT_CODE y en PROD_CODE. DEPT_CODE se utiliza para recuperación indexada puesto que está en el segmento más alto de los segmentos referenciados.

SET AUTOINDEX=ON
TABLE FILE SALES
SUM UNIT_SOLD RETAIL_PRICE
IF DEPT_CODE EQ 'H01'
IF PROD_CODE EQ 'B10'
END

Si su solicitud TABLE contiene una prueba de igualdad o de rango realizadas contra más de un campo indexado en el mismo segmento, AUTOINDEX utiliza el primer índice referenciado en ese segmento para la recuperación. El procedimiento almacenado que aparece a continuación tiene una prueba de igualdad realizada contra dos campos indexados. Puesto que DEPT_CODE aparece antes de PROD_TYPE en el archivo Máster, AUTOINDEX utiliza DEPT_CODE para la recuperación.

SET AUTOINDEX=ON
TABLE FILE SALES
SUM UNIT_SOLD AND RETAIL_PRICE
IF PROD_TYPE EQ 'STEREO'
IF DEPT_CODE EQ 'H01'
END

No se llama la recuperación indexada si la prueba de igualdad o de rango se ejecuta contra un campo indexado que no reside en el segmento referenciado más alto. En el ejemplo siguiente, no se ejecuta la recuperación indexada porque la solicitud contiene una referencia a AREA, un campo en el segmento STOR_SEG:

SET AUTOINDEX=ON
TABLE FILE SALES
SUM UNIT_SOLD AND RETAIL_PRICE
BY AREA
IF PROD_CODE EQ 'B10'
IF PROD_TYPE EQ 'STEREO'
END

WebFOCUS