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 memoria caché para reducir el número de
llamadas a la función SQLPrepare. Si la sentencia ya está en la
memoria caché, 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
memoria caché. Si se utilizan series SQL codificadas de forma persistente
que varían ligeramente para cada mensaje, la sentencia no se encuentra en
la memoria caché 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 memoria caché 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.