Witam,
Ostatnio podczas optymalizacji jedego projektu i namierzyłem pewien dziwny problem.
Mianowicie z poziomu php wykonanie prostego zapytania z text search'em trwa bardzo długo (ok 800ms!).
Z konsoli postgres'a wykonanie tego samego zapytania trwa ok 0.2ms - czyli jest ok.
Wykonywanie innych duużo bardziej rozbudowanych i skomplikowanych zapytań (z php) działa bez zarzutu.
Problemy zaczynaja się dopiero przy pojawieniu się textsearcha, np przy:
  1. SELECT id FROM TABLE WHERE TABLE.TEXTSEARCH @@ to_tsquery('public.polish', 'fraza')
Wpisywana fraza nie ma znaczenia - chyba że jest pusta:
  1. SELECT id FROM TABLE WHERE TABLE.TEXTSEARCH @@ to_tsquery('public.polish', '')
wówczas czas jest w porządku (ale wyniki żadne).

Próbowałem przy użyciu PDO oraz pg_query - wyniki te same.
Czy ktoś ma jakieś pomysły co może powodować takie kosmiczne spowolnienie??

Dodam że jest to serwer dedykowany więc mam pole do manewru.
Postgresql w wersji 8.3.8

Pozdrawiam i z góry dziękuję za odpowiedzi.

EDIT:
Przyczyną jest najprawdopodobniej wczytywanie na nowo słownika za każdym razem, kiedy wywoływane jest zapytanie:
http://www.depesz.com/index.php/2008/04/22/polish-tsearch-in-83-polski-tsearch-w-postgresie-83/#comment-27653

Sprawdziłem i w konsoli pierwsze zapytanie rzeczywiście jest wykonywane równie powoli jak w problemie opisanym powyżej.

Pytanie w takim razie brzmi, jak wczytać go na stałe do pamięci?

EDIT2:
Z racji tego, że na przyczynę tego problemu samemu udało mi się odpowiedzieć, temat uważam za zamknięty; założyłem nowy o odpowiednim tytule:
http://forum.php.pl/index.php?showtopic=137368