Explicação: Quando uma chamada ao banco de dados é
feita de dentro de um nó de fluxo de mensagens, o fluxo constrói o
SQL apropriado, e este é enviado utilizando 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 utilizar as instruções PASSTHRU, utilize marcadores de parâmetros
de forma que a mesma instrução SQL preparada possa ser utilizada para
cada mensagem processada, sendo que os parâmetros são ligados 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.
Contudo, nem sempre é possível utilizar marcadores de parâmetros, ou você
pode querer construir dinamicamente as cadeias das instruções SQL em tempo de execução. Isso potencialmente
faz com que muitas instruções SQL únicas sejam armazenadas no cache. O próprio
cache não cresce tanto, já que essas instruções em si geralmente não são grandes, mas
muitas alocações de memória pequenas podem levar à fragmentação de memória.