![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 16.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
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: Wpisywana fraza nie ma znaczenia - chyba że jest pusta: 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 Ten post edytował rożen 10.12.2009, 12:59:51 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:57 |