Size: a a a

pgsql – PostgreSQL

2021 February 22

YS

Yaroslav Schekin in pgsql – PostgreSQL
Shamil Sabirov
ну я вероятно о том же. нет у нас DBA, который все может, или почти все.... и там кстате не только в ресурсах же проблема. попросить заоблачные мощности на сервер СУБД - любой может, много ума не нужно. пару дней с заказчиком поругаться и обосновать почему надо больше. а почему СУБД вдруг начинает "чудить" не с того ни с сего - 2 месяца было норм, а седня вдруг процы под 100%. я бы не преуменьшал роль DBA на проектах
> и там кстате не только в ресурсах же проблема.

Именно в плане "репутации" (впечатлений пользовавшихся) коммерческих СУБД против бесплатных — это существенный фактор, мне кажется.

> попросить заоблачные мощности на сервер СУБД - любой может, много ума не нужно

Но не любой получит. :) И с PostgreSQL это произойдёт гораздо легче, нет?

> а почему СУБД вдруг начинает "чудить" не с того ни с сего

Мне кажется, такие истории я слышал "про всё".

> я бы не преуменьшал роль DBA на проектах

Я к тому, что преувеличивать тоже не стоит — stackoverflow "силами" подержанного PC из 2010-х ни один DBA (и даже все DBA и разработчики PostgreSQL вместе взятые) не поднимет. ;)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Victor Yegorov
да, увеличивает.
“прелесть” Оракл в том, что можно всё. только потом заплатить надо будет. и очень много, т.к. некоторые опции очень неожиданны
> (и тут даже Postgres возникает, зачастую, случайно),

И, кстати, тоже да. Мне вот недавно знакомый рассказывал, что их поставщики перевели поставляемый продукт с MS SQL Server Express (бесплатного, но с ограничениями) на PostgreSQL (что было причиной, я так и не понял).
И вот именно так:

> они что-то делают и проект выходит в свет.

и вышло — "первый блин комом". А "виноват", естественно, postgres. ;(
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
Victor Yegorov
тут надо ещё смотреть на то, что Oracle зачастую идёт как требование вендора к покупаемому продукту, и лицензии сразу закладываются в проект и сравниваются при поиске альтернатив.
с Postrges-ом же часто нанимают ребят на разработку софта (и тут даже Postgres возникает, зачастую, случайно), они что-то делают и проект выходит в свет. на этом этапе DBA не рассматривается, ибо дорого и зачем?
а через какое-то время начинаются описанные вами проблемы. и приходится искать DBA (или консультироваться).

и потом разгребать это всё крайне трудоёмко: в 99% случаев надо перекраивать схему, а т.к. это тех-долг, всё откладывается в долгий ящик.
ну и концепция “код важнее данных” тоже бесит!
не совсем так. архитектура приложения и архитектура БД - скажем так по феншую построены. но проблемы все же возникают. и тут уже вопрос не в Oracle или не Postgres. вопрос наверно больше сможет ли тот же Postgres на тех же серверных мощностях то же самое сделать
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Shamil Sabirov
не совсем так. архитектура приложения и архитектура БД - скажем так по феншую построены. но проблемы все же возникают. и тут уже вопрос не в Oracle или не Postgres. вопрос наверно больше сможет ли тот же Postgres на тех же серверных мощностях то же самое сделать
А у меня встречный вопрос — почему PostgreSQL должен быть на тех же серверных мощностях?
Может, их можно сильно увеличить, и намного выиграть, например (и, в том числе, по TCO)? ;)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Shamil Sabirov
не совсем так. архитектура приложения и архитектура БД - скажем так по феншую построены. но проблемы все же возникают. и тут уже вопрос не в Oracle или не Postgres. вопрос наверно больше сможет ли тот же Postgres на тех же серверных мощностях то же самое сделать
позволю себе поворчать: в 90% случаев “по феншую” — это как удобно в ORM/фреймворке.
сколько раз встречал ситуации, когда запрос можно ускорить на 2-3 порядка, но это требует нестандартной конструкции и поэтому рекомендации уходят в долгий ящик.

но да, пару раз встречал грамотные проекты, где не было детских проблем, прям совсем. как вы говорите — по феншую…
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
Yaroslav Schekin
А у меня встречный вопрос — почему PostgreSQL должен быть на тех же серверных мощностях?
Может, их можно сильно увеличить, и намного выиграть, например (и, в том числе, по TCO)? ;)
ну это конечно интересно. а насколько нужно увеличить? на 10-20% или на порядок в 2-3 раза?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Shamil Sabirov
ну это конечно интересно. а насколько нужно увеличить? на 10-20% или на порядок в 2-3 раза?
Как вообще можно рассуждать о сравнительной производительности неведомой базы данных в вакууме? ;)
Это сравнивать нужно, тестировать.

> на 10-20% или на порядок в 2-3 раза?

А почему не на минус 20-30%, или в 0.2-0.3 раза, а? ;)
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
Victor Yegorov
позволю себе поворчать: в 90% случаев “по феншую” — это как удобно в ORM/фреймворке.
сколько раз встречал ситуации, когда запрос можно ускорить на 2-3 порядка, но это требует нестандартной конструкции и поэтому рекомендации уходят в долгий ящик.

но да, пару раз встречал грамотные проекты, где не было детских проблем, прям совсем. как вы говорите — по феншую…
да у нас ORM. и как обычно "детские" болезни - это выборка из БД. но это нам не мешает. работало и работало. все тугие запросы в СУБД раньше отладили. но вот раз в 2-3 месяца СУБД начинает "чудить". и тогда DBA очень нехватает...
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Shamil Sabirov
да у нас ORM. и как обычно "детские" болезни - это выборка из БД. но это нам не мешает. работало и работало. все тугие запросы в СУБД раньше отладили. но вот раз в 2-3 месяца СУБД начинает "чудить". и тогда DBA очень нехватает...
купите пакет консультационных часов и расходуйте их по необходимости.
да, первые 3-4 часа улетят, т.к. надо разбираться в том, что у вас есть. зато потом как по маслу пойдёт!
источник

БГ

Бензофуран Гетероцик... in pgsql – PostgreSQL
Скромный вопрос.
ORM ругается на то что запрос не корректен, хотя ровно тот же запрос на sqlite выполнялся без особых вопросов.
Это ORM попусту возникает или в PostgreSQL такой запрос действительно не выполнится?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Бензофуран Гетероцикл
Скромный вопрос.
ORM ругается на то что запрос не корректен, хотя ровно тот же запрос на sqlite выполнялся без особых вопросов.
Это ORM попусту возникает или в PostgreSQL такой запрос действительно не выполнится?
Текстом показывайте. Но скорее всего да, вряд ли Вы сходу нашли bug в postgres. ;)
источник

БГ

Бензофуран Гетероцик... in pgsql – PostgreSQL
Текстом вручную запрос был такой:

SELECT
 CASE WHEN m.to_id = ?
   THEN sender.id
   ELSE receiver.id
 END interlocutor,
 CASE WHEN m.to_id = ?
   THEN sender.name
   ELSE receiver.name
 END username,
 sender.id msg_sender_id,
 m.text msg_text
FROM messages m
JOIN users sender ON
 sender.id = m.from_id
JOIN users receiver ON
 receiver.id = m.to_id
WHERE m.to_id = ? OR m.from_id = ?
GROUP BY interlocutor
HAVING m.id = max(m.id)
ORDER BY m.id DESC
источник

БГ

Бензофуран Гетероцик... in pgsql – PostgreSQL
Yaroslav Schekin
Текстом показывайте. Но скорее всего да, вряд ли Вы сходу нашли bug в postgres. ;)
Могу со скрина запрос набрать, если так принципиально)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Бензофуран Гетероцикл
Текстом вручную запрос был такой:

SELECT
 CASE WHEN m.to_id = ?
   THEN sender.id
   ELSE receiver.id
 END interlocutor,
 CASE WHEN m.to_id = ?
   THEN sender.name
   ELSE receiver.name
 END username,
 sender.id msg_sender_id,
 m.text msg_text
FROM messages m
JOIN users sender ON
 sender.id = m.from_id
JOIN users receiver ON
 receiver.id = m.to_id
WHERE m.to_id = ? OR m.from_id = ?
GROUP BY interlocutor
HAVING m.id = max(m.id)
ORDER BY m.id DESC
Ну и он явно неправильный.
Т.е. в select list есть много чего без агрегации, чего нет в GROUP BY (да и в HAVING, и в ORDER BY).
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Бензофуран Гетероцикл
Могу со скрина запрос набрать, если так принципиально)
Если Вам не принципиально, чтобы Вам помогали — не набирайте. ;)
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
compiler.py:362 - кмк говорит о том что запрос заглох даже не улетев в постгрес
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Бензофуран Гетероцикл
Могу со скрина запрос набрать, если так принципиально)
вот я хотел выделить текст ошибки, но как мне сделать с вашего скриншота? ))
источник

БГ

Бензофуран Гетероцик... in pgsql – PostgreSQL
Alexey Lesovsky
вот я хотел выделить текст ошибки, но как мне сделать с вашего скриншота? ))
Есть же слова👌
Можно сказать где именно то на что вы хотели обратить внимание)

P.S. По ссылке из ошибки уже ходил
P.P.S. ORM - sqlalchemy v1.4.0b3, если это важно
источник

SS

Shamil Sabirov in pgsql – PostgreSQL
interlocutor из какой таблицы?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexey Lesovsky
вот я хотел выделить текст ошибки, но как мне сделать с вашего скриншота? ))
Да вот так же — https://ms-paint-i.de/ (какие-то мы тут несовременные, в самом деле). :)
источник