Witam. Mam następujący problem:
Mam widok powiedzmy "A". Widok ten składa dane z trzech różnych tabel.
Robie następujące zapytania na widoku:
Select A.* FROM A WHERE pole1=1 AND pole2=2 AND pole3=3
Select A.* FROM A INNER JOIN TABELA ON A.klucz=TABELA.klucz WHERE TABELA.pole1=1 AND TABELA.pole2=2 AND TABELA.pole3=3
Pierwsze zapytanie wlecze się strasznie (nawet 30 sek) i obciąża procesor 100% - są założone indeksy na polach w warunkach - rekordów jest parę tysięcy.
Drugie zapytanie zwraca wynik momentalnie - a różnica tylko taka, że łączę ponownie JOINEM jedną tabelę zawartą w tym widoku i zakładam warunki bezpośrednio na tabeli (a nie na widoku, który zwraca pola z tej tabeli).
Czy możecie mnie oświecić dlaczego tak dziwnie się to zachowuje?
Pozdrawiam