Cómo mejorar la eficiencia en clasificaciones externas

En esta sección:

Cómo:

Referencia:

Cuando se genera un informe, por defecto se clasifica mediante un procedimiento de clasificación interna. Este procedimiento de clasificación está optimizado para informes de hasta 180 o 200K, aunque existen muchos factores que afectan al tamaño de datos que puede manejar la clasificación interna.

El archivo FOCSORT usado para clasificación interna puede alcanzar cualquier tamaño permitido por el sistema operativo en ejecución y el espacio disponible en el disco. El usuario no tiene que dividir una solicitud para poder acomodar archivos masivos. En versiones anteriores, el archivo FOCSORT tenía un límite de 2GB y el usuario recibía un mensaje FOC298 al sobrepasar el límite de WebFOCUS. Como en esta versión de WebFOCUS no impone ningún límite, el sistema operativo proporciona cualquier manejo de advertencias y errores que esté asignado a la administración de un archivo FOCSORT que sobrepase sus límites.

Puede generar informes más largos, y de forma más rápida, utilizando productos de clasificación específicos, como SyncSort o DFSORT; en entornos que no sean de ordenador central, utilice las rutinas de clasificación externas de WebFOCUS.

Para poder emplear una clasificación externa, el parámetro EXTSORT debe estar activado. El uso de una hoja de estilo desactiva la clasificación externa.

Tenga en cuenta que en entornos de ordenador central, la clasificación externa está soportada en francés, español, alemán y lenguas escandinavas (sueco, danés, finlandés y noruego). Para especificar el entorno de soporte de lenguas nacionales (NLS), use el parámetro LANG, descrito en el manual Cómo desarrollar aplicaciones de informes .


Principio de página

x
Referencia: Requisitos para la clasificación externa

Puede usar los productos de clasificación externa DFSORT y SyncSort con cualquier solicitud TABLE, FML, GRAPH o MATCH, en todos los entornos de ordenador central de WebFOCUS. En otros entornos operativos, WebFOCUS emplea sus propias rutinas de clasificación externa.


Principio de página

x
Referencia: Notas de uso para clasificación externa en entornos que no sean de ordenador central

No se recomienda usar clasificación externa cuando:


Principio de página

x
Procedimiento: Cómo Determinar el tipo de clasificación utilizado

Para determinar qué clasificación se va a utilizar, se evalúan los siguientes criterios, en este orden:

  1. BINS. Si se puede clasificar un informe completo en el área de trabajo (BINS), no se invoca la clasificación externa, aun si EXTSORT está en ON.
  2. EXTERNAL. Si BINS no es lo suficientemente grande para clasificar todo el informe y EXTSORT está activado, se invocará la utilidad de clasificación externa.

Principio de página

x
Sintaxis: Cómo Controlar clasificación externa

Emplee el comando SET EXTSORT para activar o desactivar la función de clasificación externa.

SET EXTSORT = {ON|OFF}

donde:

ON

Activa el uso selectivo de un producto específico de clasificación externa para clasificar informes. Este es el valor predeterminado en todos los entornos de ordenador central.

OFF

Usa el procedimiento de clasificación interna para clasificar todos los informes. Este es el valor predeterminado en todos los entornos que no sean de ordenador central.


Principio de página

x
Sintaxis: Cómo Consultar el tipo de clasificación

Para determinar qué tipo de clasificación se usa en un informe determinado, emita el siguiente comando después de la solicitud de informe:

? STAT

El comando muestra los siguientes valores para el parámetro SORT USED:

FOCUS

Se usó el procedimiento de clasificación interna para clasificar todo el informe.

SQL

Está usando un origen de datos relacionales y los datos proporcionados por el RDBMS ya están ordenados.

EXTERNAL

Un producto de clasificación externa clasificó el informe.

NONE

El informe no necesitaba clasificarse.


Principio de página

x
Cómo proporcionar una estimación de registros de entrada o tamaño de informe para clasificación

Cómo:

El proporcionar una estimación del tamaño de la entrada (ESTRECORDS) o tamaño del informe (ESTLINES) ofrece dos ventajas:



x
Sintaxis: Cómo Proporcionar una estimación de registros de entrada o tamaño de informe para clasificación
ON TABLE SET ESTRECORDS nON TABLE SET ESTLINES n						

donde:

n

Es el número estimado de registros o líneas que se va a clasificar.


Principio de página

x
Archivos de trabajo de clasificación y códigos de retorno

Referencia:

En entornos que no sean de ordenador central, las clasificaciones externas usan archivos de trabajo temporales para retener resultados de clasificación intermedios. Debe estar al corriente de cómo se crean y usan los archivos de trabajo de clasificación para cada tipo de clasificación externa.



x
Referencia: Archivos de trabajo de clasificación en UNIX, Windows y OpenVMS

Mientras que la clasificación interna sólo emplea un archivo de trabajo (asignado en el directorio EDATEMP), la clasificación externa permite hasta 31 archivos de trabajo, asignados en una o varias unidades de disco (ejes) o directorios. (Advertencia: Estos archivos de trabajo pueden llegar a tener grandes dimensiones. Cuente con que el espacio total del disco requerido por FOCSORT va a usarse muchas veces.)

De forma predeterminada, se asignan cinco archivos de trabajo en el directorio /tmp, en UNIX, o en el directorio al que apunta la variable de entorno TMP, en Windows. Es posible que no haya suficiente espacio de trabajo de clasificación y que, aun cabiendo los archivos en el directorio, el rendimiento no sea óptimo con sólo cinco archivos. Además, puede que, al tener todos los archivos de trabajo de clasificación en el mismo disco, el rendimiento sufra más todavía.

Existen otras dos opciones:

La función ANSI tempnam se encarga de generar los nombres de los archivos de trabajo; todos los nombres empiezan por srtwk. Si el proceso de clasificación termina con normalidad o debido a un error detectable (generalmente, de desbordamiento de espacio en el disco), se eliminan todos los archivos de trabajo asignados. No hay ningún modo explícito de guardarlos. Si ocurre algún otro tipo de terminación anormal, puede que los archivos strwk se mantengan en el disco. En ese caso, elimínelos.



x
Referencia: Clasificar archivos de trabajo en IBM i

En IBM i (anteriormente, i5/OS), el número de archivos de trabajo se ha fijado en 9. Estos archivos son virtuales.



x
Referencia: Códigos de retorno de clasificación externa de WebFOCUS

El mensaje de error FOC909 de WebFOCUS se emite para todos los errores de clasificación externa. Se proporciona un código adicional de tres dígitos, de los que los dos primeros son relevantes. Si recibe un mensaje de error que termina en:


Principio de página

x
Utilidades de clasificación externa de ordenador central y opciones de mensaje

En esta sección:

Cómo:

De forma predeterminada, no se muestran los mensajes de error creados por un producto de clasificación externa de ordenador central. Sin embargo, podría querer mostrar dichos mensajes en su pantalla para propósitos de diagnóstico.



x
Procedimiento: Cómo Seleccionar una utilidad de clasificación y opciones de mensaje

El comando SET SORTLIB se usa para especificar la utilidad de clasificación empleada y, en DFSORT y SYNCSORT de z/OS, para mostrar mensajes de clasificación.

  1. Para especificar la utilidad de clasificación empleada, emita el comando SET SORTLIB:
    SET SORTLIB = {sortutility|DEFAULT}

    donde:

    sortutility

    Puede ser uno de los siguientes:

    DFSORT, para DFSORT sin mensajes.

    MVSMSGDF, para DFSORT sin mensajes.

    SYNCSORT, para SyncSort sin mensajes.

    MVSMSGSS, para SyncSort con mensajes estándar.

    MVSMSGSS, para SyncSort con mensajes de depuración (detallados).

    DEFAULT para DFSORT. Sin embargo, es recomendable especificar explícitamente la utilidad de clasificación con uno de los otros valores.

  2. Si ha especificado una opción de clasificación que genera mensajes de clasificación en z/OS, debe dirigirlos al flujo de salida por lotes o a un archivo.

    Asigne DDNAME SYSOUT a la corriente de salida en lote o a un archivo en z/OS, insertando la DD correspondiente, en su server batch JCL, si no se encuentra ya ahí. Por ejemplo, la siguiente DD asigna DDNAME SYSOUT a la corriente de salida en lote:

    //SYSOUT DD SYSOUT=*


x
Cómo diagnosticar errores de clasificación externa

Al aparecer un error de clasificación externa, puede generar un seguimiento de procesamiento de clasificación y examinar los códigos de retorno y mensajes de FOCUS para diagnosticar el problema.



x
Procedimiento: Cómo Seguimiento de procesamiento de clasificación

Cuando ocurre un problema de clasificación externa, se genera uno de estos mensajes:

(FOC909)  CRITICAL ERROR IN EXTERNAL SORT.  RETURN CODE IS: xxxx
(FOC1810) External sort not found
(FOC1899) Load of %1 (external-sort module) under %2 failed

Ante estos mensajes, al igual que con cualquier otro problema de clasificación, es recomendable realizar seguimiento del procesamiento de clasificación. Para obtener información sobre cómo diagnosticar problemas de clasificación externa, consulte Cómo diagnosticar errores de clasificación externa.

  1. Asigne DDNAME FSTRACE al terminal o a un archivo. El ejemplo siguiente muestra el envío de salida de seguimiento al terminal:
    //FSTRACE  DD  SYSOUT=*,DCB=(RECFM=FA,LRECL=133,BLKSIZE=133)
  2. Active el seguimiento añadiendo los comandos siguientes en cualquier perfil admitido o un FOCEXEC:
    SET TRACEUSER = ON
    SET TRACEON  = SORT/1/FSTRACE


x
Referencia: Mensajes de clasificación externa y códigos de retorno

Cuando recibe un mensaje FOC909, se incluye un código de retorno:

(FOC909)  CRITICAL ERROR IN EXTERNAL SORT.  RETURN CODE IS: xxxx							

Además, puede que reciba uno de los mensajes siguientes:

(FOC1810) External sort not found
(FOC1899) Load of %1 (external-sort module) under %2 failed

Cuando una solicitud TABLE genera este mensaje, o un mensaje FOC1800 o FOC1899, se aplican las notas siguientes:

  • El valor más común de xxxx es 16. Sin embargo, el código de retorno 16 también se emite para otros problemas, incluyendo, entre otros, lo siguiente:
    • Errores de sintaxis.
    • Falta de memoria.
    • Errores de I/O (dependiendo de las opciones de instalación).
    • Problemas de espacio en la salida.
    • Problemas de espacio en archivos de trabajo.

    Para diagnosticar el error debe generar mensajes de clasificación externa (siga las intrucciones en Cómo Seleccionar una utilidad de clasificación y opciones de mensaje y Cómo Seguimiento de procesamiento de clasificación) y, después, reproducir el fallo.

    Para los códigos de retorno no descritos a continuación, siga el mismo procedimiento usado para el código de retorno 16.

  • En z/OS, DFSORT emite el código de retorno 20 cuando los mensajes se han solicitado (usando la opción MVSMSGDJ del comando SET SORTLIB) sin la tarjeta SYSOUT DD. DFSORT finaliza tras emitir el código de retorno. Bajo las mismas condiciones, SyncSort intenta abrir SYSOUT, generando el mensaje siguiente, y sigue con los mensajes escritos al operador o terminal:
    IEC130I SYSOUT DD STATEMENT MISSING.
  • En z/OS, el código de retorno 36, o el mensaje FOC1899, indica que no se ha encontrado el módulo de clasificación externa; compruebe las STEPLIB asignadas.

Cuando REBUILD INDEX invoca una clasificación externa y esta falla, se genera un mensaje de error similar a este:

ERROR OCCURRED IN THE SORT yyyyyyyyzzzzzzzz							

En este caso, el código de retorno es yyyyyyyy expresado en hex. Ignore los ocho últimos dígitos (zzzzzzzz).

Traduzca el código de retorno a decimal y siga las instrucciones de códigos de retorno en una solicitud TABLE.

Además, tenga en cuenta que cuando una solicitud TABLE genera un código de retorno que no sea cero, se cierra FOCUS. Sin embargo, cuando REBUILD INDEX recibe un código de retorno que no sea cero, de una clasificación externa, se cierra el comando REBUILD, pero FOCUS continúa.



x
Referencia: Cómo responder a un aviso de espacio de trabajo de clasificación inadecuado

Antes de seguir estas instrucciones, compruebe que se han generado mensajes de clasificación externa (para más información, consulte Cómo Seleccionar una utilidad de clasificación y opciones de mensaje) y que muestren, claramente, que el motivo del fallo es un espacio de trabajo de clasificación inadecuado.

  1. Calcule el número de líneas de salida que va a generar la solicitud.
  2. Establezca el parámetro ESTLINES en la solicitud o en FOCEXEC. Para obtener información al respecto, consulte Cómo Proporcionar una estimación de registros de entrada o tamaño de informe para clasificación.

    WebFOCUS pasará esta estimación a la utilidad de clasificación externa a través de la lista de parámetros.

    No anule las tarjetas DD de SORTWKnn, S001WKnn, DFSPARM o $SORTPARM, sin tener instrucciones directas del departamento de servicio técnico. Las instrucciones recogidas en Cómo Seleccionar una utilidad de clasificación y opciones de mensaje, Cómo Seguimiento de procesamiento de clasificación, y Cómo proporcionar una estimación de registros de entrada o tamaño de informe para clasificación, deberían ofrecer capacidades equivalentes.


Principio de página

x
Agregación por clasificación externa (sólo en entornos de ordenador central)

Cómo:

Referencia:

Se pueden usar las clasificaciones externas para realizar agregación con una disminución considerable del tiempo de procesamiento, en comparación con el uso de la facilidad de clasificación interna. Las ventajas son más obvias con solicitudes relativamente simples contra grandes orígenes de datos.

Cuando se realiza la agregación mediante una clasificación externa, las variables estadísticas &RECORDS y &LINES son iguales porque los productos de clasificación externa no devuelven una cuenta de líneas para el conjunto de respuestas. Este es un cambio de comportamiento y afecta a cualquier código que verifique el valor de &LINES. (Si va a hacer una prueba de &LINES, no utilice esta función.)



x
Sintaxis: Cómo Utilizar agregación en su clasificación externa
SET EXTAGGR = aggropt						

donde:

aggropt

Puede ser uno de los siguientes:

OFF impide la agregación por clasificación externa.

NOFLOAT permite la agregación siempre y cuando no haya campos de datos de punto flotante presentes.

ON permite la agregación por clasificación externa. Este valor es el predeterminado.



x
Referencia: Notas sobre agregación con una clasificación externa


Ejemplo: Cómo cambiar la salida mediante una clasificación externa de agregación

Si utiliza SUM en un campo alfanumérico en su solicitud de informe sin utilizar una clasificación interna, la última ocurrencia de los campos de clasificación aparece en la salida. Si se activa la agregación en la clasificación interna, aparece el primer registro. Sin embargo, el orden de visualización puede controlarse a través del parámetro SUMPREFIX. Cuando SUMPREFIX = LST (por defecto), el último caso aparece incluso cuando EXTAGGR = ON.

El comando siguiente activa la agregación y deja SUMPREFIX establecido en LST (por defecto) y, por consiguiente, muestra el último registro:

SET EXTAGGR = ON
SET SUMPREFIX = LST
TABLE FILE CAR
SUM CAR BY COUNTRY
END

La salida es:

COUNTRY     CAR     
-------     ---     
ENGLAND     TRIUMPH 
FRANCE      PEUGEOT 
ITALY       MASERATI
JAPAN       TOYOTA  
W GERMANY   BMW

Nota: SUMPREFIX aparece descrito en Cómo cambiar el orden de recuperación con agregación (sólo en entornos de ordenador central) .

Con SUMPREFIX = FST la salida es:

COUNTRY     CAR       
-------     ---       
ENGLAND     JAGUAR    
FRANCE      PEUGEOT   
ITALY       ALFA ROMEO
JAPAN       DATSUN    
W GERMANY   AUDI

Principio de página

x
Cómo cambiar el orden de recuperación con agregación (sólo en entornos de ordenador central)

Cómo:

Cuando un producto de clasificación externa realiza una agregación de formatos alfanuméricos o de fecha inteligente, el orden del conjunto de respuestas devueltas difiere del orden de los conjuntos de respuestas clasificadas internamente.

Los productos de clasificación externa devuelven el primer registro alfanumérico o de fecha inteligente agregado. La clasificación interna, por el contrario, devuelve el último registro.

El comando SUMPREFIX permite que los usuarios escojan el orden de visualización del conjunto de respuestas.



x
Sintaxis: Cómo Configurar orden de recuperación
SET SUMPREFIX = {LST|FST}

donde:

LST

Muestra el último valor cuando se agregan tipos de valores alfanuméricos o de fecha inteligente. Este valor es el predeterminado.

FST

Muestra el primer valor cuando se agregan tipos de valores alfanuméricos o de fecha inteligente.


Principio de página

x
Cómo crear un archivo HOLD con una clasificación externa (sólo en entornos de ordenador central)

Cómo:

Referencia:

Puede usar paquetes de clasificación externa de ordenador central para crear archivos HOLD, resultando en ahorros importantes de tiempo de procesamiento. Las ventajas son más obvias con solicitudes relativamente simples contra grandes orígenes de datos.



x
Sintaxis: Cómo Crear archivos HOLD con una clasificación externa
SET EXTHOLD = {OFF|ON}

donde:

OFF

Deshabilita los archivos HOLD mediante una clasificación externa.

ON

Habilita los archivos HOLD mediante una clasificación externa. Este valor es el predeterminado.



x
Referencia: Notas de uso para la creación de un archivo HOLD con una clasificación externa

WebFOCUS