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 .
SET AUTOINDEX = {ON|OFF}
donde:
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.
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.
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 |