Postgres i libpq dla dużej tabeli.

Odpowiedz Nowy wątek
2011-08-18 17:27
szymko
0

Witam przygotowałem tabele z 5 mln rekordów dodałem index do pól idgracza,idxy i gdy wywołuję zapytanie:
SELECT *
FROM ukladinfo
WHERE idxy IN (SELECT idukladuxy FROM _planety WHERE idgracza = 2)

to w pgadminie czas wykonywania jest około 0,4 sekundy.

Natomiast w moim programie c++ aby wszystko było szybciej wykorzystałem PQprepare(...).
Następnie Wywołuję PQexecPrepared(...) i od momentu wywołania funkcji do zwrócenia rezultatu czekam około 10 sekund.
Czym takie spowolnienie może być spowodowane bo to jakaś tragedia...?
Mam ustawiony jeden parametr dla PQprepare - chodzi o pole idgracza, który jest type int.

Pozostało 580 znaków

2011-08-24 11:52
szymko
0

W sumie nie pomyślałem... Skoro i tak i tak muszę przejść po wszystkich gniazdach wywołując funkcję FD_ISSET, a gniazda przechowuję w strukturach, natomiast moja pętla przechodzi przez te wszystkie struktury to i dostęp do danych będę miał O(1). Pozostało pytanie czy select będzie szybszy...???

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0