Não sei se esse é o seu problema, mas o Oracle espia os valores da variável de vinculação ao analisar uma consulta e salva o plano de consulta para execuções futuras, para que não precise continuar analisando a consulta toda vez que for executada com um novo conjunto de variáveis de ligação. Mas de vez em quando a consulta é analisada novamente. Se alguns valores de variáveis de ligação incomuns forem passados durante uma análise, um plano incorreto será armazenado e usado. É uma espécie de maldição de variáveis de ligação. Eles reduzem a análise, mas podem inverter o plano em valores atípicos de variáveis de ligação quando as consultas são analisadas novamente. As dicas podem ajudar. Usamos perfis SQL para bloquear planos de consultas com variáveis de ligação que tendem a alterar planos. Às vezes, você pode personalizar quando e como as estatísticas do otimizador são reunidas para que um bom plano seja criado, independentemente de quais valores são passados para as variáveis de ligação.
De qualquer forma, é algo que vejo o tempo todo e pode ou não ser o seu problema.
Bobby