Подвисший запрос
От | isk |
---|---|
Тема | Подвисший запрос |
Дата | |
Msg-id | 1436166665.20070321150925@rdw.ru обсуждение исходный текст |
Ответы |
Чудо дивное планировщик явил !!!
(silly_sad <sad@bankir.ru>)
|
Список | 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@rdw.ru
В списке pgsql-ru-general по дате отправления: