IMMEDWRITE opción de enlace

La opción IMMEDWRITE indica si se van a realizar escrituras inmediatas para las actualizaciones efectuadas para agrupar conjuntos de páginas o particiones de base de datos dependientes de agrupaciones de almacenamientos intermedios.

Opción de comando Valores de las opciones Usado con
IMMEDWRITE
  • (NO)
  • (YES)
  • (INHERITFROMPLAN ) 1
Nota:
  1. La opción IMMEDWRITE(INHERITFROMPLAN) no es válida para REBIND de paquetes para servicios REST nativos.
  2. La opción de reasignación no es válida para la reasignación de paquetes para procedimientos nativos de SQL o desencadenadores avanzados.

Esta opción solo es aplicable a entornos de intercambio de datos. El parámetro del subsistema IMMEDWRITE no tiene efecto en la opción de enlace IMMEDWRITE en el momento del enlace. La siguiente tabla muestra la jerarquía implícita de esta opción en cuanto a su efecto en el tiempo de ejecución.

Descripciones de opciones para IMMEDWRITE

IMMEDWRITE(NO)
Especifica que se realiza una actividad de escritura normal. Las páginas actualizadas que dependen del grupo de memoria intermedia se escriben en la fase uno de la confirmación o antes, o al final de la cancelación para las transacciones que se han revertido.
IMMEDWRITE(YES)
Especifica que las páginas actualizadas que dependen del grupo de búferes se escriben inmediatamente en cuanto se completa la actualización del búfer. Las páginas actualizadas se escriben inmediatamente, incluso si el búfer se actualiza durante el progreso de reenvío o durante la reversión de una transacción. Especificar esta opción podría afectar al rendimiento.
IMMEDWRITE(INHERITFROMPLAN)

Permite que un paquete local herede el valor de la opción IMMEDWRITE del plan, independientemente de si el paquete se vinculó de forma remota o local.

Si vincula un paquete de forma remota con la opción IMMEDWRITE(INHERITFROMPLAN) y el servidor remoto no entiende el valor INHERITFROMPLAN, el servidor podría devolver un error.

El valor IMMEDWRITE(INHERITFROMPLAN) no se aplica en las siguientes situaciones, porque no existe ningún plan asociado:

  • Si enlaza la aplicación localmente y, a continuación, copia el paquete en un servidor remoto.
  • Si enlaza una aplicación que utiliza RRSAF.
  • Para los paquetes que se crean para programas de utilidad

En estos casos, IMMEDWRITE(NO) está en vigor para el paquete.

Tabla 1. La jerarquía implícita de la opción IMMEDWRITE
Opción de enlace IMMEDWRITE Parámetro del subsistema IMMEDWRI Valor en tiempo de ejecución
NEE NEE NEE
NEE PH1 PH1
NEE YES YES
PH1 NEE PH1
PH1 PH1 PH1
PH1 YES YES
YES NEE YES
YES PH1 YES
YES YES YES
Nota : Las opciones NO y " PH1 " son equivalentes. La opción " PH1 " se muestra solo por compatibilidad con versiones anteriores.

Inicio del cambioInteracciones con la opción PLANMGMT : si planea cambiar esta opción y la opción PLANMGMT en un comando REBIND, consulte la opción de enlace PLANMGMT para conocer las implicaciones.fin del cambio

Implicaciones de IMMEDWRITE en el rendimiento

Puede utilizar IMMEDWRITE(NO) e IMMEDWRITE(YES) para situaciones en las que una transacción genera otra transacción que puede ejecutarse en otro miembro de Db2 y que depende de actualizaciones no confirmadas que fueron realizadas por la transacción original.

Especifique IMMEDWRITE(NO) para que las páginas dependientes del grupo de búferes se escriban en la fase 1 de confirmación o antes.

Especifique IMMEDWRITE(YES) para que la transacción de origen escriba inmediatamente sus búferes actualizados dependientes de GBP (en lugar de esperar hasta el final de la confirmación o reversión), lo que garantizará que la transacción dependiente obtenga siempre los mismos resultados, independientemente de si se ejecuta en el mismo miembro o en un miembro diferente al de la transacción de origen. IMMEDWRITE(YES) debe utilizarse con precaución debido a su posible impacto en el rendimiento. El impacto será más significativo para los planes y paquetes que realizan muchas actualizaciones de búfer en páginas dependientes de GBP, y no tan notable para los planes o paquetes que realizan pocas actualizaciones de búfer en páginas dependientes de GBP. Las siguientes opciones pueden considerarse alternativas al uso de IMMEDWRITE(YES):
  • Ejecute siempre la transacción dependiente en el mismo miembro de la red de pago ( Db2 ) que la transacción original.
  • Ejecute la transacción dependiente con ISOLATION(RR).
  • Espere hasta que se complete la fase dos del compromiso antes de generar la transacción dependiente.
  • CURRENTDATA(YES) o ISOLATION(RS) pueden utilizarse para resolver el problema solo si la transacción de origen actualiza columnas que no están en la cláusula WHERE de la transacción dependiente.

Valores predeterminados para IMMEDWRITE

Proceso Valor predeterminado:
BIND SERVICE NEE
BIND PLAN NEE
BIND PACKAGE
  • Para un servidor local: INHERITFROMPLAN
  • Para un servidor remoto: NO
REBIND PLAN Valor existente
REBIND PACKAGE Valor existente
REBIND TRIGGER PACKAGE Valor existente