Mejora del rendimiento de los procedimientos almacenados y las funciones definidas por el usuario

Puede mejorar el rendimiento de los procedimientos almacenados y las funciones definidas por el usuario si sigue determinadas recomendaciones.

Procedimiento

Para mejorar el rendimiento de los procedimientos almacenados y las funciones definidas por el usuario, siga cualquiera de las recomendaciones siguientes:

  • Actualice la columna ASUTIME de la tabla de catálogo SYSIBM.SYSROUTINES para establecer límites de procesador para cada procedimiento almacenado o función.
    Los límites especificados permiten que Db2 cancele los procedimientos o funciones que se ejecutan en bucle.
  • Limite el número de veces que puede terminar anormalmente un procedimiento almacenado especificando para ello una de las opciones siguientes:
    • El campo MAX ABEND COUNT del panel de instalación DSNTIPX. El límite especificado se aplica a todos los procedimientos almacenados y evita que un procedimiento con un problema sobrecargue el sistema con un proceso de vuelco de terminación anómala.
    • La opción STOP AFTER FAILURES en la sentencia ALTER o CREATE PROCEDURE. El límite especificado sobrescribe el límite del sistema indicado en el campo MAX ABEND COUNT para determinar límites para procedimientos almacenados concretos.
  • Maximice el número de procedimientos o funciones que se pueden ejecutar simultáneamente en un espacio de direcciones de procedimientos almacenados establecido por WLM.
  • Inicio del cambioEstablezca objetivos de velocidad WLM para un mejor rendimiento de los procedimientos almacenados.fin del cambio
  • Agrupe sus procedimientos almacenados en entornos de aplicación WLM.
    Para obtener más información, consulte Definición de entornos de aplicación.
  • Utilice variables de indicador en los programas y pase las variables de indicador como parámetros.
    Cuando los parámetros de salida ocupan mucho almacenamiento, puede resultar poco económico pasar las áreas de almacenamiento completas al procedimiento almacenado. No obstante, puede utilizar variables de indicador en el programa de llamada para pasar al procedimiento almacenado únicamente un área de dos bytes y recibir el área completa del procedimiento almacenado.
  • Establezca una prioridad lo bastante alta para los espacios de direcciones de procedimientos almacenados gestionados por WLM.
  • Establezca los valores adecuados para las opciones relacionadas con el rendimiento en la sentencia CREATE PROCEDURE.
    La tabla siguiente muestra los valores recomendados.
    Tabla 1. Valores recomendados para las opciones relacionadas con el rendimiento en la sentencia CREATE PROCEDURE.
    Opción Valor recomendado
    PROGRAMTYPE SUB
    STAYRESIDENT YES
    PARAMETER STYLE GENERAL WITH NULLS o SQL
    COMMIT ON RETURN NO para los procedimientos almacenados llamados localmente; YES para los procedimientos almacenados llamados desde aplicaciones cliente distribuidas en entornos en los que no se utiliza el equilibrado de carga de trabajo de Sysplex.
  • No utilice la sentencia DD DSNTRACE en ningún procedimiento de inicio de espacio de direcciones de procedimientos almacenados. DSNTRACE es un recurso que se puede utilizar para capturar todos los mensajes de rastreo para la referencia y el diagnóstico fuera de línea. No obstante, DSNTRACE aumenta enormemente la sobrecarga de inicialización de los procedimientos almacenados. Además, DSNTRACE no funciona en entornos multitarea ya que el CAF no serializa el acceso al conjunto de datos de rastreo de DSNTRACE.
  • Especifique un valor lo suficientemente alto para el parámetro de subsistema CACHERAC en el panel de instalación DSNTIPP.
    El parámetro CACHERAC especifica la cantidad de almacenamiento que se debe asignar para el almacenamiento en memoria caché de la información de autorización de rutina para todas las rutinas en Db2, el miembro.
  • Establezca el parámetro de subsistema CMTSTAT en INACTIVE.
    Este valor hace que las hebras distribuidas entren en inactividad con la confirmación siempre que sea posible. Las hebras inactivas están disponibles para la reutilización de hebras, lo que reduce la cantidad de almacenamiento de hebras necesario para la carga de trabajo, ya que disminuye el número de hebras activas distribuidas.
  • Inicio del cambioSi el entorno es uno en el que el coste de iniciar nuevos espacios de direcciones es muy alto, establezca el parámetro del subsistema MNSPAS para especificar el número mínimo de espacios de direcciones que se van a iniciar y mantener.fin del cambio
  • Convierta los procedimientos almacenados externos a procedimientos de SQL nativo siempre que sea posible.
    El cuerpo de un procedimiento SQL nativo está escrito en SQL, y Db2 no genera un programa C asociado para los procedimientos almacenados nativos. Los procedimientos de SQL nativo son más compatibles y más fáciles de mantener y normalmente funcionan mejor que los procedimientos SQL externos, que están en desuso.
  • Examine cuidadosamente su carga de trabajo y sus funciones y procedimientos almacenados externos.
    Puede utilizar IBM® OMEGAMON® for Db2 Performance Expert on z/OS® para supervisar los procedimientos almacenados y las funciones definidas por el usuario.
  • Utilice los miembros de los conjuntos de datos particionados ampliados (PDSE) para las bibliotecas de carga que contengan procedimientos almacenados.
    Al utilizar miembros de los PDSE, podría eliminar la necesidad de detener e iniciar el espacio de direcciones de procedimientos almacenados cuando crecen las bibliotecas de carga, ya que la información de la nueva extensión se actualiza dinámicamente. Si una biblioteca de carga crece debido a adiciones y sustituciones, es posible que se tenga que ampliar. Si utiliza miembros de conjuntos de datos particionados (PDS), podrían producirse errores de carga al no estar disponible la información de la nueva extensión.