Skip site navigation (1) Skip section navigation (2)

Подвисший запрос

From: isk <isk(at)rdw(dot)ru>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: Подвисший запрос
Date: 2007-03-21 12:09:25
Message-ID: 1436166665.20070321150925@rdw.ru (view raw or flat)
Thread:
Lists: pgsql-ru-general
Добрый день
Есть такая проблема: иногда возникает "подвисший запрос". Запрос,
который обычно выполняется порядка 100мс, может выполняться часами.
Что приводит к заметному снижению производительности. Процесс
приходится убивать. За месяц столкнулись 6 раз.
Вопрос: с чем это может быть связано, какие параметры нужно замерить в
след раз, чтобы локализовать проблему.

Сам запрос:
SELECT "v3_vacancy"."id" FROM "v3_vacancy" WHERE (("v3_vacancy"."fti_title" @@ to_tsquery('default_russian', 'официант')) AND ("v3_vacancy"."is_spam" IS FALSE ) AND ("v3_vacancy"."published_date" >= '2007-02-23 00:00:00') AND ("v3_vacancy"."is_searchable" IS TRUE ) ) AND (("v3_vacancy"."city_id" = '1') )  ORDER BY "v3_vacancy"."is_paid_top_search" DESC, "v3_vacancy"."modified_date" DESC LIMIT 30 OFFSET 120
(строка поиска каждый раз разная)
Характерно использование TSearch для данной таблицы



CREATE TABLE v3_vacancy
(
  id serial NOT NULL,
  ...
  fti_all tsvector, -- TSearch2 index для всей вакансии.
  fti_title tsvector, -- TSearch2 index для названия вакансии.
)
WITH OIDS;

CREATE INDEX v3_vacancy_fti_all_idx
  ON v3_vacancy
  USING gist
  (fti_all);

CREATE INDEX v3_vacancy_fti_title_idx
  ON v3_vacancy
  USING gist
  (fti_title);


 SELECT * from pg_ts_cfg;
     ts_name     | prs_name |    locale
-----------------+----------+--------------
 default         | default  | C
 default_russian | default  | ru_RU.KOI8-R
 simple          | default  |



SELECT * from pg_ts_cfgmap ;
     ts_name     |  tok_alias   | dict_name
-----------------+--------------+-----------
 default         | lword        | {en_stem}
 default         | nlword       | {simple}
 default         | word         | {simple}
 default         | email        | {simple}
 default         | url          | {simple}
 default         | host         | {simple}
 default         | sfloat       | {simple}
 default         | version      | {simple}
 default         | part_hword   | {simple}
 default         | nlpart_hword | {simple}
 default         | lpart_hword  | {en_stem}
 default         | hword        | {simple}
 default         | lhword       | {en_stem}
 default         | nlhword      | {simple}
 default         | uri          | {simple}
 default         | file         | {simple}
 default         | float        | {simple}
 default         | int          | {simple}
 default         | uint         | {simple}
 default_russian | lword        | {en_stem}
 default_russian | nlword       | {ru_stem}
 default_russian | word         | {ru_stem}
 default_russian | email        | {simple}
 default_russian | url          | {simple}
 default_russian | host         | {simple}
 default_russian | sfloat       | {simple}
 default_russian | version      | {simple}
 default_russian | part_hword   | {simple}
 default_russian | nlpart_hword | {ru_stem}
 default_russian | lpart_hword  | {en_stem}
 default_russian | hword        | {ru_stem}
 default_russian | lhword       | {en_stem}
 default_russian | nlhword      | {ru_stem}
 default_russian | uri          | {simple}
 default_russian | file         | {simple}
 default_russian | float        | {simple}
 default_russian | int          | {simple}
 default_russian | uint         | {simple}
 simple          | lword        | {simple}
 simple          | nlword       | {simple}
 simple          | word         | {simple}
 simple          | email        | {simple}
 simple          | url          | {simple}
 simple          | host         | {simple}
 simple          | sfloat       | {simple}
 simple          | version      | {simple}
 simple          | part_hword   | {simple}
 simple          | nlpart_hword | {simple}
 simple          | lpart_hword  | {simple}
 simple          | hword        | {simple}
 simple          | lhword       | {simple}
 simple          | nlhword      | {simple}
 simple          | uri          | {simple}
 simple          | file         | {simple}
 simple          | float        | {simple}
 simple          | int          | {simple}
 simple          | uint         | {simple}

 SELECT dict_name, dict_init, dict_lexize, dict_comment from pg_ts_dict ;
    dict_name    |       dict_init       |               dict_lexize               |                   dict_comment           
-----------------+-----------------------+-----------------------------------------+--------------------------------------------------
 simple          | dex_init(internal)    | dex_lexize(internal,internal,integer)   | Simple example of dictionary.
 en_stem         | snb_en_init(internal) | snb_lexize(internal,internal,integer)   | English Stemmer. Snowball.
 ru_stem         | snb_ru_init(internal) | snb_lexize(internal,internal,integer)   | Russian Stemmer. Snowball.
 ispell_template | spell_init(internal)  | spell_lexize(internal,internal,integer) | ISpell interface. Must have .dict and .aff files
 synonym         | syn_init(internal)    | syn_lexize(internal,internal,integer)   | Example of synonym dictionary



SELECT * from pg_ts_parser;
 prs_name |          prs_start           |               prs_nexttoken                |      prs_end       |               prs_headline                |      prs_lextype       |        prs_comment
----------+------------------------------+--------------------------------------------+--------------------+-------------------------------------------+------------------------+---------------------------
 default  | prsd_start(internal,integer) | prsd_getlexeme(internal,internal,internal) | prsd_end(internal) | prsd_headline(internal,internal,internal) | prsd_lextype(internal) | Parser from OpenFTS v0.34

 
  
PostgreSQL 8.1.8
OS Linux version 2.6.16-gentoo-r9 (gcc version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8))


-- 
С уважением,
 isk                          mailto:isk(at)rdw(dot)ru


Responses

pgsql-ru-general by date

Next:From: silly_sadDate: 2007-03-28 13:11:48
Subject: Чудо дивное планировщик явил !!!
Previous:From: silly_sadDate: 2007-03-21 11:40:11
Subject: Re: Tsearch strange error

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group