Explicación: Cuando se efectúa una llamada a la base de datos
desde un nodo de flujo de mensajes, el flujo construye el SQL apropiado, que
se envía utilizando ODBC al gestor de bases de datos. Como parte de este
proceso, la sentencia SQL se prepara utilizando la función SQLPrepare, y
se adquiere un manejador de sentencias para que pueda ejecutarse la
sentencia SQL. Por razones de rendimiento, una vez preparada
la sentencia, ésta y el manejador se guardan en una antememoria para
reducir el número de llamadas a la función SQLPrepare. Si la sentencia
ya está en la antememoria, se devuelve el manejador de la sentencia para
que pueda volver a ejecutarse con parámetros recién enlazados.
La
serie de la sentencia se utiliza para realizar la búsqueda en la
antememoria. Si se utilizan series SQL codificadas de forma persistente que
varían ligeramente para cada mensaje, la sentencia no se encuentra en la antememoria
y siempre se realiza una función SQLPrepare (y se abre un nuevo cursor ODBC).
Al utilizar sentencias PASSTHRU, utilice marcadores de parámetros de modo que
se pueda utilizar la misma sentencia SQL preparada para cada mensaje procesado,
y que los parámetros se enlacen durante la ejecución. Este método es más
eficaz en cuanto a recursos de base de datos y, para las sentencias que se
ejecutan repetidamente, es más rápido.
No obstante, no siempre es posible utilizar marcadores de parámetros,
o tal vez desee generar dinámicamente las series de las sentencias SQL en
tiempo de ejecución.
Esto tiene como posible resultado el almacenamiento en antememoria de muchas sentencias
SQL exclusivas. La memoria caché en sí no aumenta mucho de
tamaño, porque normalmente estas sentencias no son grandes, pero muchas asignaciones
de memoria pequeñas pueden ocasionar la fragmentación de la memoria.