Size: a a a

pgsql – PostgreSQL

2020 August 17

IZ

Ilia Zviagin in pgsql – PostgreSQL
Konstantin K
Привет! А есть какие-нибудь средства для отладки процедур? В частности, надо понять, на каком этапе проседает производительность
Берёшь каждый запрос, вынимаешь его из процедуры, подставляешь нужные параметры (это руки), потом смотришь, работает ли он быстро и почему нет, если нет (голова).

Можно оптимизировать первый этап, подключить голову сразу, и НЕ КАЖДЫЙ запрос расматривать.
источник

KK

Konstantin K in pgsql – PostgreSQL
теоретически можно нотисов напихать с таймингами
источник

2_

2flower _ in pgsql – PostgreSQL
Konstantin K
теоретически можно нотисов напихать с таймингами
вот нашел даже инструкцию как запустить если нужно.
https://stackoverflow.com/questions/50038611/pgadmin4-enable-debugging
источник

KK

Konstantin K in pgsql – PostgreSQL
спасибо
источник

R

Rasha in pgsql – PostgreSQL
WITH cubemap_ids AS (
SELECT cubemap.id
FROM panoramas
INNER JOIN cubemap ON cubemap.panorama_id = panoramas.id
WHERE panoramas.is_deleted = false
)
INSERT INTO cubemap (
id, panorama_id, url, meta, created_at, updated_at
) VALUES %s ON CONFLICT (cubemap_ids) DO UPDATE
SET (url, meta, created_at, updated_at) = (EXCLUDED.url, EXCLUDED.meta, EXCLUDED.created_at, EXCLUDED.updated_at);


кто подскажет по запросу, хочу чтобы в ON CONFLICT подставилось cubemap_ids?
источник

R

Rasha in pgsql – PostgreSQL
м?
источник

А

Анастасия in pgsql – PostgreSQL
#вакансия #DBA #PostgreSQL #удаленка

Компания: БАРС Груп
Позиция: DBA PostgreSQL
Формат работы: офис в Казани, Краснодаре и других крупных городах России (17 филиалов), удаленка
Зарплатная вилка: 150-300 т.р

Чем предстоит заниматься:
🐘Администрирование корпоративных баз данных СУБД PostgreSQL;
🐘Оптимизация производительности запросов;
🐘Предоставление технических рекомендаций и помощи по мере необходимости;
🐘Мониторинг работоспособности и производительности СУБД PostgreSQL.

Мы предлагаем:
🧾все красиво, бело и официально;
🏆широкие возможности для профессионального и карьерного роста и развития.

Обращайтесь:
telegram: @tettatet
почта: tettatet111@gmail.com
телефон: 7 (927) 4285712

HR Анастасия
источник

YR

Yevhenii Ryzhuk in pgsql – PostgreSQL
Здравствуйте.
Нужно рекурсивно просуммировать поле в древовидной таблице.
Есть id и parent_id и поле current_score
источник

YR

Yevhenii Ryzhuk in pgsql – PostgreSQL
Написал такой запрос

with Summing as
        (
            select M.Id,
                   M.current_score,
                   M.Id as RootID
            from public.matrix M
            union all
            select MX.Id,
                   MX.current_score,
                   MTRX.id
            from public.matrix MX
                     inner join public.matrix MTRX on MX.parent_id = MTRX.Id
        )
select M.Id,
      M.parent_id,
      M.current_score,
      S.currentScoreWithChild
from public.matrix M
        inner join (
   select RootID,
          sum(current_score) as currentScoreWithChild
   from Summing
   group by RootID) as S on M.Id = S.RootID
order by M.Id

но он суммирует только рут и первый чайлд от рута.
источник

YR

Yevhenii Ryzhuk in pgsql – PostgreSQL
Подскажите, что исправить чтоб вся глубина считалась ?
источник

YR

Yevhenii Ryzhuk in pgsql – PostgreSQL
Результат текущего запроса
источник

2_

2flower _ in pgsql – PostgreSQL
вы пишете что надо рекурсивно, но считаете вне рекурсии, так что ничего удивительного
источник

YR

Yevhenii Ryzhuk in pgsql – PostgreSQL
2flower _
вы пишете что надо рекурсивно, но считаете вне рекурсии, так что ничего удивительного
Подскажите как исправить.
источник

2_

2flower _ in pgsql – PostgreSQL
для начала напишите по человечески что вам надо, если не можете, хотя бы результирующий набор, что должно быть из вводных выше
источник

YR

Yevhenii Ryzhuk in pgsql – PostgreSQL
Yevhenii Ryzhuk
Результат текущего запроса
В результате в поле currentsumwithchild сума рутового елемента + его чайлда.
Например для результата с id 2 получилось 50, так как суммировался  id = 2 + id = 3, а чайлд с id 4 уже не входит в результат, хотя он чайлд для 3-ки
В конце для поля с id 2 должно было просуммировать его самого, его детей, и детей его детей - то есть в конце должен был получится результат 20+30+40.
В итоге в поле  currentScoreWithChild  для id 2 должно было получится 90
источник

YR

Yevhenii Ryzhuk in pgsql – PostgreSQL
а с id = 1  - те 90, что получилось + 10 самого рута, в итоге 100
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Yevhenii Ryzhuk
В результате в поле currentsumwithchild сума рутового елемента + его чайлда.
Например для результата с id 2 получилось 50, так как суммировался  id = 2 + id = 3, а чайлд с id 4 уже не входит в результат, хотя он чайлд для 3-ки
В конце для поля с id 2 должно было просуммировать его самого, его детей, и детей его детей - то есть в конце должен был получится результат 20+30+40.
В итоге в поле  currentScoreWithChild  для id 2 должно было получится 90
Казалось бы, сначала просто вытащить все дочерние узлы для каждого узла (т.е. для всех потомков узла X вывести всех его потомков, "отмеченных" X), потом просто сгруппировать по этому полю (и получить сумму в каждой группе), нет?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Rasha
WITH cubemap_ids AS (
SELECT cubemap.id
FROM panoramas
INNER JOIN cubemap ON cubemap.panorama_id = panoramas.id
WHERE panoramas.is_deleted = false
)
INSERT INTO cubemap (
id, panorama_id, url, meta, created_at, updated_at
) VALUES %s ON CONFLICT (cubemap_ids) DO UPDATE
SET (url, meta, created_at, updated_at) = (EXCLUDED.url, EXCLUDED.meta, EXCLUDED.created_at, EXCLUDED.updated_at);


кто подскажет по запросу, хочу чтобы в ON CONFLICT подставилось cubemap_ids?
Это же не настоящий запрос... причём тут либо CTE cubemap_ids, либо VALUES?
И у Вас в самом деле в таблице есть поле cubemap_ids ( ON CONFLICT (cubemap_ids) )?
Если так, какого оно типа?
источник

R

Rasha in pgsql – PostgreSQL
Yaroslav Schekin
Это же не настоящий запрос... причём тут либо CTE cubemap_ids, либо VALUES?
И у Вас в самом деле в таблице есть поле cubemap_ids ( ON CONFLICT (cubemap_ids) )?
Если так, какого оно типа?
нет, думаю как это сделать
источник

R

Rasha in pgsql – PostgreSQL
Yaroslav Schekin
Это же не настоящий запрос... причём тут либо CTE cubemap_ids, либо VALUES?
И у Вас в самом деле в таблице есть поле cubemap_ids ( ON CONFLICT (cubemap_ids) )?
Если так, какого оно типа?
Можно ли как то это реализовать?
источник