Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Функция to_tsquery тормозит при использовании ispell словарей.
|
|||
|---|---|---|---|
|
#18+
Есть PostgreSQL версии 8.3.1 на OpenSuSe 11.0. Я создал свою полнотекстовую конфигурацию, в которую добавил ispell словари для русского языка. В результате первый запрос в каждом подключении использующий to_tsquery с этой конфигурацией сильно тормозит (время выполнения более 1-й секунды). Последующие запросы в этом-же соединении с БД и использующие to_tsquery выполняются за считанные десятки миллисекунд. Я подозреваю, что проблема в том, что словари парсятся при каждом коннекте заново. Вывод о том, что тормозит именно to_tsquery я сделал на основе того, что при использовании стандартной конфигурации pg_catalog.russian тот-же самый запрос выполняется за считанные десятки миллисекунд в любом случае. Подскажите пожалуйста как быть и как можно поступить в данной ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2008, 23:39 |
|
||
|
Функция to_tsquery тормозит при использовании ispell словарей.
|
|||
|---|---|---|---|
|
#18+
Всё верно, загрузка словаря выполняется при первом его использовании, в каждой сессии. Если приложение позволит, то можно использовать пул соединений (pgpool/pgpoolII, pgbouncer). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2008, 12:35 |
|
||
|
Функция to_tsquery тормозит при использовании ispell словарей.
|
|||
|---|---|---|---|
|
#18+
А существует ли возможность заставить Postgres загрузить словари один раз без использования пулов соединений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2008, 12:40 |
|
||
|
Функция to_tsquery тормозит при использовании ispell словарей.
|
|||
|---|---|---|---|
|
#18+
Я не могу сказать как так сделать .... но если немного подумать можно предположить что тогда тормоза будут в момент создания сессии ... и "тормоза" появяться где угодно ... оно того стоит ? Используйте пуллы соединений ... а там уже прикрутите какой то тестовый запрос "select to_tsquery(string) " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2008, 17:07 |
|
||
|
Функция to_tsquery тормозит при использовании ispell словарей.
|
|||
|---|---|---|---|
|
#18+
Все правильно, других возможностей кроме использования пулера сейчас не существует. Есть патч от Феди Сигаева к pgbouncer, который позволяет выполнить произвольную функцию (для подготовки каких-либо запросов и FTS в первую очередь) при создании PostgreSQL-бакенда (мы тестировали его в production), подобная функциональность есть в pgpool, если он вам больше нравится. Есть и другая составляющая проблемы. Представьте 100 бакендов, в каждом из которых были подняты в неразделяемую память испелл-библиотеки, средний размер которых (в зависимости от словарей) составляет 25 МБ. Мы получаем 2.5 ГБ памяти израсходованных фактически впустую, что в некоторых случаях может сильно мешать системе. Так что на самом деле у Олега и Феди есть item о вынесении подобного рода данных в разделяемую память (есть, правда, идеологические сложности, вроде того, что в shared buffers всего PostgreSQL это сделать никто не даст), что помимо прочих бонусов позволит свежему бакенду пользоваться "горячими" данными сразу, а не читая их с диска. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 19:18 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=263&tid=2004097]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 353ms |

| 0 / 0 |
