Cześć,
Prośba o poradę, spotkaliście się może kiedyś z przypadkiem, kiedy zapytanie z zagnieżdżonym podzapytaniem nie zwraca błędów, jednak nie wykonuje się?
Podam na przykładzie:
Mam zapytanie o konstrukcji dosyć prostej (podaje przykład czysto koncepcyjny):
SELECT
A.parametr1,
B.parametr2,
C.parametr3
FROM tabela1 A, tabela2 B, tabela3 C
WHERE
a.id = b.id and
b.id = c.id and
c.id IN (SELECT D.id FROM tabela4 D
where warunek 1
warunek 2....itd)
Zapytanie wykonuje się w miarę szybko zwracając poprawny wynik na wszystkich bazach danych stałych (nawet tych, o bardzo dużym wolumenie danych, ORACLE 12.x).
W przypadku kiedy wykonuje je jednak na bazie danych, która podlega ciągłej aktualizacji w czasie rzeczywistym (aktualizowane są wszystkie tabele, szczególnie tabela 4)
Zapytanie wykonuje się w nieskończoność... Oracle Developer wisi w stanie (executing query) i w żaden sposób nie mogę zatrzymać tego procesu.
Wykonując dla sprawdzenia zapytanie bez podzapytania, oraz testowo samo podzapytanie otrzymuje normalnie wynik po 2-3 sekundach
Czy fakt, że baza podlega ciągłej aktualizacji i zmieniają się zawartości tabel może mieć tutaj wpływ? (nawet jeśli jest to prosty SELECT)
Znacie może jakiś sposób, jak wykonać takie zapytanie poprawnie, albo ewentualnie sprawdzić co jest przyczyną tego że nie chce się wykonać?
Pierwszy raz spotykam się z taką sytuacją.
Z góry dziękuję za pomoc
P.