Explicação: Quando uma chamada de banco de dados é feita a partir de
um nó do fluxo de mensagens, o fluxo constrói o SQL apropriado, que
é enviado usando ODBC para o gerenciador do banco de dados. Como parte desse processo, a instrução SQL é preparada utilizando
a função SQLPrepare, e um identificador de instrução é adquirido de modo que a instrução
SQL possa ser executada. Por razões de desempenho, depois que a instrução é preparada, a instrução e o
identificador são salvos em um cache para reduzir o número de chamadas à função
SQLPrepare. Se a instrução já estiver no cache, o identificador da instrução
será retornado para que possa ser executado novamente com parâmetros
recém-ligados.
A cadeia da instrução é utilizada para executar a consulta no cache. Utilizando cadeias SQL codificadas que diferem ligeiramente para cada
mensagem, a instrução não é localizada no cache e uma função
SQLPrepare é sempre executada (e um novo cursor ODBC é aberto). Ao usar instruções PASSTHRU, use marcadores de parâmetros
para que a mesma instrução preparada para SQL possa ser usada para cada mensagem
processada, com os parâmetros sendo vinculados no tempo de execução. Essa abordagem é mais eficiente em termos de recursos de banco de dados e, para instruções que são executadas repetidamente, é mais rápida.
Entretanto,
nem sempre é possível usar marcadores de parâmetros ou talvez você deseje
construir dinamicamente as cadeias de instrução SQL no tempo de execução. Esta situação
leva potencialmente a muitas instruções SQL exclusivas sendo armazenadas em cache. O
próprio cache não cresce tanto, porque estas instruções em si
geralmente não são grandes, mas muitas alocações de memória pequenas podem levar
à fragmentação da memória.