Non so se questo è il tuo problema, ma Oracle dà una sbirciatina ai valori delle variabili durante l'analisi di una query e quindi salva il piano della query per esecuzioni future, quindi non deve continuare ad analizzare la query ogni volta che viene eseguita con un nuovo insieme di variabili di collegamento. Ma ogni tanto la query viene rianalizzata. Se durante un'analisi vengono passati alcuni valori di variabili di collegamento insoliti, viene archiviato e utilizzato un piano errato. È una specie di maledizione delle variabili bind. Riducono l'analisi ma possono capovolgere il piano su valori di variabili di associazione atipici quando le query vengono nuovamente analizzate. I suggerimenti possono aiutare. Utilizziamo i profili SQL per bloccare i piani di query con variabili di associazione che tendono a modificare i piani. A volte puoi personalizzare quando e come vengono raccolte le statistiche dell'ottimizzatore in modo da creare un buon piano indipendentemente dai valori passati nelle variabili di associazione.
Ad ogni modo, è qualcosa che vedo sempre e potrebbe essere o meno un tuo problema.
Bobby