powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Непостоянное время выполнения запроса - всегда разное
15 сообщений из 40, страница 2 из 2
Непостоянное время выполнения запроса - всегда разное
    #40088510
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тензор- таблица сильно разрежена, рекомендуется произвести очистку с помощью VACUUM [FULL]
- возможно, чтение идет "с середины" индекса
- вероятно, сервер перегружен (CPU/RAM/HDD), или возникли блокировки
посмотрите тут
может что найдете для себя.
но лучше идти к админу и решать вопрос совместно с ним.
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088518
gav21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
balykovdron,

Скорее всего проблема в перегруженной дисковой системе.
Покажите на всякий случай описание индекса: ix_requests_reccreated
Так же полезно было бы знать на каких ожиданиях проводит запрос в процессе выполнения: колонки pg_stat_activity.wait_event_type, pg_stat_activity.wait_event
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088550
balykovdron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mefman

посмотрите тут
может что найдете для себя.


Спасибо большое за инструмент!

mefman

таблица сильно разрежена


А вот как оценить этот факт? Я раньше с MS SQL работал - там из инструментов администрирования можно было сразу видеть % разряженнго пространства. Как это сделать в PG? Простым гугленьем - не найду. Нахожу только, что сделайте вакуум фул. И не находится, "а что даст вакуум фул для конкретной таблицы? Сколько там сейчас свободного места?"
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088561
balykovdron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gav21

Покажите на всякий случай описание индекса: ix_requests_reccreated


Код: sql
1.
2.
3.
CREATE INDEX ix_requests_reccreated
    ON public.rsmev___requests USING btree
    (reccreated ASC NULLS LAST)




gav21

на каких ожиданиях проводит запрос в процессе выполнения: колонки pg_stat_activity.wait_event_type, pg_stat_activity.wait_event


wait_event_typewait_eventbackend_startxact_startquery_startstate_changebackend_xminIODataFileRead2021-08-04 09:06:11.017858+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.018347+00159454958LWLockbuffer_io2021-08-04 09:06:11.01808+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.018547+00159454958IODataFileRead2021-08-04 09:06:11.018268+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.018736+00159454958IODataFileRead2021-08-04 09:06:11.018561+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.019042+00159454958IODataFileRead2021-08-04 09:01:43.032007+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.015373+00159454958
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088570
gav21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
balykovdron,

Вакум скорее всего никак кардинально не изменит картины.
Поищите потенциальных потребителей-конкурентов, которые возможно параллельно нагружают ввод-вывод так, что у вас пропускная способность падает до 1-2 Мб в сек (read=69856 Execution time: 412207.956 ms) (тут на всякий случай нужно подтверждение, что бОльшая часть времени действительно была потрачено на операции IO - включите параметр track_io_timing как рекомендовал Максим)

ожидание LWLock/buffer_io - говорит о том, что процесс пытается прочитать страницу с диска, которая уже читается другим процессом.
Вы случай не пытаетесь одновременно в параллель выполнять эти запросы от разных процессов?
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088573
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
balykovdron
mefman

посмотрите тут
может что найдете для себя.


Спасибо большое за инструмент!

mefman

таблица сильно разрежена


А вот как оценить этот факт? Я раньше с MS SQL работал - там из инструментов администрирования можно было сразу видеть % разряженнго пространства. Как это сделать в PG? Простым гугленьем - не найду. Нахожу только, что сделайте вакуум фул. И не находится, "а что даст вакуум фул для конкретной таблицы? Сколько там сейчас свободного места?"

по поводу разрежённости таблицы - это лишь предположение тензора.
по поводу вакуум(фулл) - лучше общаться с вашим ДБА.
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088579
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
balykovdron
gav21

Покажите на всякий случай описание индекса: ix_requests_reccreated


Код: sql
1.
2.
3.
CREATE INDEX ix_requests_reccreated
    ON public.rsmev___requests USING btree
    (reccreated ASC NULLS LAST)




gav21

на каких ожиданиях проводит запрос в процессе выполнения: колонки pg_stat_activity.wait_event_type, pg_stat_activity.wait_event


wait_event_typewait_eventbackend_startxact_startquery_startstate_changebackend_xminIODataFileRead2021-08-04 09:06:11.017858+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.018347+00159454958LWLockbuffer_io2021-08-04 09:06:11.01808+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.018547+00159454958IODataFileRead2021-08-04 09:06:11.018268+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.018736+00159454958IODataFileRead2021-08-04 09:06:11.018561+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.019042+00159454958IODataFileRead2021-08-04 09:01:43.032007+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.01537+002021-08-04 09:06:11.015373+00159454958



А у вас на этом сервере есть графики утилизации дисковой систему, r/w IOPS, r/w latency?
Если нет - начните с нормального мониторинга.
У вас всё по скорости в диски упирается.
Лечить или искать кто так диски жестоко нагружает и лечить или ставить дисковую систему быстрее.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088580
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для поиска "bloat"

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
SELECT
    current_database(), schemaname, tablename, 
    ROUND((CASE WHEN otta=0 THEN 0.0 ELSE sml.relpages::float/otta END)::numeric,1) AS tbloat,
    CASE WHEN relpages < otta THEN 0 ELSE bs*(sml.relpages-otta)::BIGINT END AS wastedbytes,
    iname, 
    ROUND((CASE WHEN iotta=0 OR ipages=0 THEN 0.0 ELSE ipages::float/iotta END)::numeric,1) AS ibloat,
    CASE WHEN ipages < iotta THEN 0 ELSE bs*(ipages-iotta) END AS wastedibytes
  FROM (
    SELECT
      schemaname, tablename, cc.reltuples, cc.relpages, bs,
      CEIL((cc.reltuples*((datahdr+ma-
        (CASE WHEN datahdr%ma=0 THEN ma ELSE datahdr%ma END))+nullhdr2+4))/(bs-20::float)) AS otta,
      COALESCE(c2.relname,'?') AS iname, COALESCE(c2.reltuples,0) AS ituples, COALESCE(c2.relpages,0) AS ipages,
      COALESCE(CEIL((c2.reltuples*(datahdr-12))/(bs-20::float)),0) AS iotta 
    FROM (
      SELECT
        ma,bs,schemaname,tablename,
        (datawidth+(hdr+ma-(case when hdr%ma=0 THEN ma ELSE hdr%ma END)))::numeric AS datahdr,
        (maxfracsum*(nullhdr+ma-(case when nullhdr%ma=0 THEN ma ELSE nullhdr%ma END))) AS nullhdr2
      FROM (
        SELECT
          schemaname, tablename, hdr, ma, bs,
          SUM((1-null_frac)*avg_width) AS datawidth,
          MAX(null_frac) AS maxfracsum,
          hdr+(
            SELECT 1+count(*)/8
            FROM pg_stats s2
            WHERE null_frac<>0 AND s2.schemaname = s.schemaname AND s2.tablename = s.tablename
          ) AS nullhdr
        FROM pg_stats s, (
          SELECT
            (SELECT current_setting('block_size')::numeric) AS bs,
            CASE WHEN substring(v,12,3) IN ('8.0','8.1','8.2') THEN 27 ELSE 23 END AS hdr,
            CASE WHEN v ~ 'mingw32' THEN 8 ELSE 4 END AS ma
          FROM (SELECT version() AS v) AS foo
        ) AS constants
        GROUP BY 1,2,3,4,5
      ) AS foo
    ) AS rs
    JOIN pg_class cc ON cc.relname = rs.tablename
    JOIN pg_namespace nn ON cc.relnamespace = nn.oid AND nn.nspname = rs.schemaname AND nn.nspname <> 'information_schema' AND nn.nspname <> 'pg_catalog'
    LEFT JOIN pg_index i ON indrelid = cc.oid
    LEFT JOIN pg_class c2 ON c2.oid = i.indexrelid
  ) AS sml
ORDER BY wastedbytes DESC;
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088586
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya,

Оно такого насчитать может что не рады будете.
Единственный рабочий метод анализа bloat это pgstattuple расширение.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088616
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
Guzya,

Оно такого насчитать может что не рады будете.
Единственный рабочий метод анализа bloat это pgstattuple расширение.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Это если прям точно-точно надо, при этом надо поставить расширение и при подсчете проверяются все страницы таблицы(полный проход).
А этот скрипт делает прикидочную оценку, после которого уже можно переходить к более точным и более "тяжелым" подсчетам.
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088646
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk

А у вас на этом сервере есть графики утилизации дисковой систему, r/w IOPS, r/w latency?
Если нет - начните с нормального мониторинга.
У вас всё по скорости в диски упирается.
Лечить или искать кто так диски жестоко нагружает и лечить или ставить дисковую систему быстрее.

Короче, ТСу прямая дорога к его ОПСам.
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088654
balykovdron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk

А у вас на этом сервере есть графики утилизации дисковой систему, r/w IOPS, r/w latency?
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088659
gav21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
balykovdron
Maxim Boguk

А у вас на этом сервере есть графики утилизации дисковой систему, r/w IOPS, r/w latency?


Блин не тот файл приложил ((

это пять!
"у вас jpg" :D
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088691
balykovdron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gav21

это пять!


Вы бы лучше IOPсы откоментили ))
...
Рейтинг: 0 / 0
Непостоянное время выполнения запроса - всегда разное
    #40088706
gav21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
balykovdron
gav21

это пять!


Вы бы лучше IOPсы откоментили ))

цифры не впечатляют и малополезны.
Полезней будет latency / service time дисков - может у вас с СХД проблемы и высокие задержки на дисках.
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Непостоянное время выполнения запроса - всегда разное
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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