SELECT g.DATA, gk.kolejnosc, g.dystans, g.styl FROM g, gk WHERE gk.os = 1066 AND gk.gon = g.id AND gk.kolejnosc > 0
1066 to wartość zwrócona przez ( SELECT id FROM osoby WHERE nazwa = 'Foo' ), ponieważ zauważyłem, że wybranie id osoby i wstawienie go do powyższego zapytanie jest szybsze niż ta:
SELECT g.DATA, gk.kolejnosc, g.dystans, g.styl FROM g, gk WHERE gk.os =( SELECT id FROM osoby WHERE nazwa = 'Foo' ) AND gk.gon = g.id AND gk.kolejnosc > 0
co wydaje mi się dziwne. Szybsze powinno byc to drugie z zagnieżdżonym podzapytaniem. No ale nie o tym chciałem.
Chodzi mi o to że zapytanie to wykonuje się około 2500ms na dobrym sprzęcie. Na gorszym kompie trwa to 5-6 skund. Mowa tutaj o sqlite. Natomiast takie zapytanie do postgresa wykonuje się w około 100ms. Róznica jest znaczna. Wszystkie selecty do sqlite wykonywały mi się dużo szybciej niż do pg, oprócz tego jednego przypadku. Szybkość ma dla mnie duże znacznie i czas 5-6 sekund jest nie do zaakceptowania. Zmniejszyć tego selecta już nie mogę. Co można zrobić, żeby wykonywał się szybciej?