Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dlaczego tak długo?, sqlite vs postgresql
arx
post 4.04.2006, 00:47:23
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 4.04.2006

Ostrzeżenie: (0%)
-----


Mam takie zapytanie:
  1. SELECT g.DATA, gk.kolejnosc, g.dystans, g.styl
  2. FROM g,
  3. gk
  4. 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:
  1. SELECT g.DATA, gk.kolejnosc, g.dystans, g.styl
  2. FROM g,
  3. gk
  4. WHERE gk.os =( SELECT id
  5. FROM osoby
  6. 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?

Ten post edytował arx 4.04.2006, 09:23:02
Go to the top of the page
+Quote Post
elessar
post 4.04.2006, 10:02:49
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 12.05.2003
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


zalozyc indeksy na nazwa, gk.gon, g.id,
dodatkowo subselecty moga nie byc wydajne (taki problem kiedys mial firebird).


--------------------
..::elessar::..
Go to the top of the page
+Quote Post
DeyV
post 4.04.2006, 10:10:25
Post #3





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Niestety - ale wydajność SQLite sprawdza się tylko i wyłącznie na najprostrzych zapytaniach.

Jakiekolwiek Joiny, subzapytania i warunki w znaczący sposób spowalniają tą bazę.

Ale w tym konkretnym przypadku rzeczywiście wygląda to na jakiś problem z indexami, lub typem danych kolumn wykorzystywanych w warunkach i zlączeniach.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
arx
post 4.04.2006, 15:38:41
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 4.04.2006

Ostrzeżenie: (0%)
-----


Dzięki, indeksy pomogły. Teraz jest 30ms.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 02:20