Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Slow query / 5 сообщений из 5, страница 1 из 1
29.05.2003, 18:03
    #32172189
Daniel Podolsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slow query
День добрый!

Имею запрос, не слишком сложный - left join по четырем таблицам, where по десятку полей, order по трем и limit.

Основная таблица содержит тысяч 20 строк - тестовый режим. Запрос мой отрабатывает за пару секунд, и это неплохо.

Если вбросить в основнуй таблицу еще тысяч 10 строк - запрос будет отрабатывать от двух до пяти минут. Если после этого выдать еще один такой же запрос - опять пара секунд.

Если тот же запрос выдавать в процессе добавления записей, он отрабатывает примерно за минуту, +- 10 секунд.

У меня нехорошее ощущение, что обновление индексов происходит по первому запросу, а не по insert.

Может кто-нибудь подтвердить/опровергнуть? А то и указать на ключик, который за такое поведение отвечает?

Спасибо

With best regards,
Daniel Podolsky
...
Рейтинг: 0 / 0
29.05.2003, 19:44
    #32172280
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slow query
похоже на то ,что че-то с памятью...
яб предположил то что при первом заприсе оно выжирает данные с винта в память а во время второго запроса этого уже не происходит..

посмотрел бы че с винтом творится при первом запросе.. если не хрустит то я тогда даже незнаю что предположить

а OS какя?
...
Рейтинг: 0 / 0
29.05.2003, 19:45
    #32172282
Shweik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slow query
Daniel
По утверждениям разработчиков индексы обновляются после каждой транзакции
изменяющей ключевые поля - именно этим объясняют невысокую производительность при многочисленных инсертах и включенном автокоммите.
Именно поэтому для всатвки пары десятков тысяч записей рекомендуют пользоваться командой COPY.
Согласен что пользоваться ей не всегда удобно, но скорость добавления записей IMHO предельная. Что же касается индексов: похоже они
обновляются опять таки после коммита транзакции.
Наверное тут происходит нарушение статистики на которую опирается планировщик запросов. И где-то он отказывается от индексов.
...
Рейтинг: 0 / 0
29.05.2003, 22:32
    #32172357
Daniel Podolsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slow query
>По утверждениям разработчиков индексы обновляются после
>каждой транзакции изменяющей ключевые поля -
>именно этим объясняют невысокую производительность
>при многочисленных инсертах и включенном автокоммите.
Я бы не назвал эту производительность "невысокой" :) Мне удается влить 100,000 записей за 40 минут. Это быстрее, чем мускул и оракул... Данные поступают по ТСР и вливаются через 10 соединений с БД.

>Наверное тут происходит нарушение статистики на которую опирается
>планировщик запросов. И где-то он отказывается от индексов.
Да нет... Если во время insert говорить explain - он показывает соответственное увеличение цены, но все индексы - на месте.

А ОС - RedHat 7.3...
...
Рейтинг: 0 / 0
30.05.2003, 16:23
    #32173051
Shweik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slow query
Про скорость Insert/Copy - см доку.
VACUUM ANALYZE. - полезно обновлять статистику для планировщика
после массового перепахивания таблиц.
Про RH ничего не знаю. смотри рассылки на postgresql.org.
И все-таки тут важнее не ОС а установки постгреса ну и сам запрос.
Еще раз скажу - индексы обновляются именно по insert ( именно чтобы не тратить время на их обновление при массовых инсертах в доке рекомендуют удалять индексы и создавать после всех инсертов заново)
Следовательно дело не в индексах. IMHO все дело в мусоре и неадекватной статистике для планировщика.
Сравни результаты EXPLAIN ANALYZE до и после VACUUM ANALYZE.
Я думаю получится интересно.
Может быть что-то не в порядке с выполнением WAL под RH.
Тут ничего не присоветую. Это к разработчикам.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Slow query / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]