|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
Есть несложный запрос с группировкой данных Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Я хочу получить стабильное время работы данный выборки, но не получается. Каждый раз когда я меняю диапазон дат (например хочу другой месяц) запрос выполняется очень медленно - например это время сравнимо с 3-4 минутами. Если не менять даты и запускать запрос несколько раз с одними и теми же датами, то время выполнения измеряется секундами. Я новичёк в PG - мне не понятно почему так происходит. План выполнения запроса прилагаю ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 13:40 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
balykovdron Есть несложный запрос с группировкой данных Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Я хочу получить стабильное время работы данный выборки, но не получается. Каждый раз когда я меняю диапазон дат (например хочу другой месяц) запрос выполняется очень медленно - например это время сравнимо с 3-4 минутами. Если не менять даты и запускать запрос несколько раз с одними и теми же датами, то время выполнения измеряется секундами. Я новичёк в PG - мне не понятно почему так происходит. План выполнения запроса прилагаю Код: sql 1.
и не в виде скриншотов, а консольный вывод пжлста ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 13:43 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
Используемый в плане индекс ix_requests_reccreated создан по полю reccreated ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 13:45 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
mefman и не в виде скриншотов, а консольный вывод пжлста Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 13:51 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
Поменял даты на месяц пораньше - запустил опять, результат ждал десяток минут... (( Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 14:24 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
balykovdron Planning time: 0.139 ms Execution time: 132579.696 ms Я вижу, что сильно отличается время плана и факта, но что дальше делать и куда копать - не предположу. Табличка высоконагруженная и работа с ней реальными пользователями не останавливается ни на секунду. Что можете предложить в данной ситуации? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 14:26 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
balykovdron Табличка высоконагруженная автовакуум настраивали? и вообще настройки в БД меняли какие-либо? или все по-дефолту? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 15:03 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
mefman balykovdron Табличка высоконагруженная автовакуум настраивали? и вообще настройки в БД меняли какие-либо? или все по-дефолту? ЛОЛ. и зачем вам group если вы закомментировали каунты? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 15:23 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
Видимо у Вас очень "дорогое" чтение с диска Я так понимаю, это время после нескольких запусков, т.е. у Вас прогрелся кэш и читать с диска надо меньше Код: sql 1. 2. 3. 4.
А это первый запуск после смены периода, холодный кэш, приходиться читать больше Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 15:58 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
mefman ЛОЛ. и зачем вам group если вы закомментировали каунты? Т.к. я разбираюсь с этим запросом - решил методо исключения его упрощать, поэтому закомментировано. Админ сервака, говорит, что автовакуум настроен. А вот на сколько он эффективен? Как можно глянуть? И скорее всего большинство настроек сервера настроены по-умолчанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 15:58 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
Кстати, сколько у Вас ОЗУ и shared_buffers ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 15:59 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
Guzya Кстати, сколько у Вас ОЗУ и shared_buffers ? ОЗУ 24Гб, shared_buffers = 4GB ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 16:15 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
mefman автовакуум настраивали? автовакуум настроен также по-умолчанию - админ его просто включил и всё, ничего не настраивая... А как можно проверить - он ввобще что-то делает? На сколько он эффективен? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 16:19 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
Guzya Видимо у Вас очень "дорогое" чтение с диска Похоже на то - а что теперь дальше с этим делать? Как "удешевлять"? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 16:20 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
balykovdron, Удешевлять, наверное, только заменой дисков. По поводу запроса, возможно Вам стоит посмотреть в сторону создания материализованного представления с рефрешем (например раз в день). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 16:28 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
balykovdron mefman автовакуум настраивали? автовакуум настроен также по-умолчанию - админ его просто включил и всё, ничего не настраивая... А как можно проверить - он ввобще что-то делает? На сколько он эффективен? сделать запрос в БД на соответствующие параметры. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 16:40 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
А вот вообще ахтунг - этот же запрос на другом сервере, этаже таблица, с такимже индексом показывает совершенно другой план запроса! Это как вообще?! Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Этот план больше похож на то, чего ждут от запроса, и вопрос, а почему на другом сервере он не такой? И как исправить ситуацию там? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 18:23 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
balykovdron этаже таблица, с такимже индексом balykovdron Buffers: shared hit=192889 против balykovdron Buffers: shared hit=2268904 read=140449 Всего-то на порядок больше данных, почему бы и работать не на порядок дольше? Фигня какая, действительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 18:30 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
mefman show xxx [/src] namesettingunitautovacuumonNULLautovacuum_analyze_scale_factor0.1NULLautovacuum_analyze_threshold50NULLautovacuum_freeze_max_age200000000NULLautovacuum_max_workers3NULLautovacuum_multixact_freeze_max_age400000000NULLautovacuum_naptime60sautovacuum_vacuum_cost_delay20msautovacuum_vacuum_cost_limit-1NULLautovacuum_vacuum_scale_factor0.2NULLautovacuum_vacuum_threshold50NULLautovacuum_work_mem-1kBlog_autovacuum_min_duration-1ms ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 18:36 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
balykovdron, Довольно высокое отношение кол-ва прочитанных страниц к извлеченным строкам на проблемном (4.5 к 1) Попробуйте отключить параллелизацию (set max_parallel_workers to 0, set max_parallel_workers_per_gather to 0) и еще раз выполнить запрос. Если отношение останется таким же высоким то возможная проблема в блоатинге индекса. Так же проверьте долгие транзакции на основном сервере (и всех репликах особенно если включен hot_standby_feedback). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 21:30 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
gav21 balykovdron, Довольно высокое отношение кол-ва прочитанных страниц к извлеченным строкам на проблемном (4.5 к 1) Попробуйте отключить параллелизацию (set max_parallel_workers to 0, set max_parallel_workers_per_gather to 0) и еще раз выполнить запрос. Если отношение останется таким же высоким то возможная проблема в блоатинге индекса. Так же проверьте долгие транзакции на основном сервере (и всех репликах особенно если включен hot_standby_feedback). max_parallel_workers отключать не рекомендую, вот а max_parallel_workers_per_gather - да ну и автовакуум таки не "оттюнен", следовательно возможен блоат и тухлая статистика. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 21:48 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
gav21 Если отношение останется таким же высоким то возможная проблема в блоатинге индекса. А как лечится блоатинг индекса? Если пересозданием, то я так делал - примеры запросов уже после пересоздания индекса ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 08:46 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
Отключил один параметр: set max_parallel_workers_per_gather to 0 Теперь результат запроса на плохом сервере изменился - пропал узел Gather и план запроса стал похожим на план со здорового сервака Но скорость по-прежнему плохая. Вот план запроса Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 09:39 |
|
Непостоянное время выполнения запроса - всегда разное
|
|||
---|---|---|---|
#18+
balykovdron, включите track_io_timing в конфиге чтобы понимать сколько времени на работу с диском уходит. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 10:02 |
|
|
start [/forum/topic.php?fid=53&msg=40088334&tid=1993913]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 368ms |
0 / 0 |