Nie wiem, czy to jest twój problem, ale Oracle zagląda do wartości zmiennych wiążących podczas analizowania zapytania, a następnie zapisuje plan zapytania do przyszłych wykonań, aby nie musieć analizować zapytania za każdym razem, gdy jest uruchamiane z nowym zestaw zmiennych wiązania. Ale co jakiś czas zapytanie jest ponownie analizowane. Jeśli podczas parsowania zostaną przekazane jakieś nietypowe wartości zmiennych wiązania, wówczas zły plan jest przechowywany i używany. Jest to rodzaj przekleństwa zmiennych wiążących. Zmniejszają analizowanie, ale mogą odwrócić plan na nietypowych wartościach zmiennych wiązania, gdy zapytania są ponownie analizowane. Pomocne mogą być wskazówki. Używamy profili SQL do blokowania planów zapytań za pomocą zmiennych wiążących, które mają tendencję do zmiany planów. Czasami można dostosować czas i sposób zbierania statystyk optymalizatora, aby utworzyć dobry plan niezależnie od tego, jakie wartości są przekazywane do zmiennych wiązania.
W każdym razie jest to coś, co widzę cały czas i może, ale nie musi, być twoim problemem.
Bobby