172 похожих чатов

Есть проект с больши числом строк на pgsql, я хочу

переделать это на C++ , и уже готовый запрос кидать в postgres. Стантет ли хуже производительность?
PS суть вопроса: что быстрее работает do с кучами if else и т п или готовый запрос, ведь do postgres сможет подготовить заранее или нет?

17 ответов

28 просмотров

Прикольный поинт... если речь про PL/pgsql то мне тоже интересен результат переписывания. Хотите расширение для postgres сделать или вынести просто в сервис расчеты? Есть кейсы при котором в PL/pgSQL написали настолько лютую считалку что её вынос в сервис имеет смысл даже с учетом всех накладных?

do особенно не готовится заранее. Дажэ кэшырование pl/pgsql довольно такое, относительное. А уж do -- всегда с нуля парзится. С другой стороны -- в некоторых случаях есть шанс, что round-trip до клиента на C++ можэт иметь значение. С третьей стороны -- в среднем интэрпретацыя цыклов в postgres настолько небыстрая, что на одном хосте по unix-domain sockets скорее решэние на C++ чуть-чуть выиграет (для большынства кода, написанного под pgsql это впрочем будет на грани точности измерения в любом случае). ЗЫ А почему C++? Какбы... Ну, довольно проблемный язык. Зачем?

PGSQL где работает?

Maus-Grau Автор вопроса
oleg filippov
Прикольный поинт... если речь про PL/pgsql то мне ...

Просто вынести все лишнее, так куча расчетов всяких дат, размеров, которые по факту не зависят от таблиц и их можно сделать на плюсах и потом уже закинуть в запрос.

Maus-Grau Автор вопроса
Maus-Grau Автор вопроса
Maus Grau
Просто вынести все лишнее, так куча расчетов всяки...

А когда сделаете расшарите метрики? Мне интересно реально можно получать внушительный прирост таким образом?

Maus Grau
В смысле где?)

На какой машине, на каком хосте? И где будет работать С++ -приложение.

Maus-Grau Автор вопроса
oleg filippov
А когда сделаете расшарите метрики? Мне интересно ...

Прирост врядли будет, главное чтобы в минус не ушло) А так пока не известно будем ли это делать ведь нужно еще согласовать с 1000 менеджеров, чтобы набрать аргументы решил спросить)

Maus-Grau Автор вопроса
Ilya Zviagin
На какой машине, на каком хосте? И где будет работ...

Машины сервиса и базы разные но они близко)

Maus Grau
Машины сервиса и базы разные но они близко)

Так ещё раз, на какой машине PG/PLSQL -код работает сейчас ?

Maus Grau
Прирост врядли будет, главное чтобы в минус не ушл...

эм... а если "прирост вряд ли будет" тогда не скромный вопрос "зачем"?

Maus-Grau Автор вопроса
Ilya Zviagin
Так ещё раз, на какой машине PG/PLSQL -код работае...

И на той что сервис и на той что бд, там разные функции или хар-ки машины надо?)

Maus-Grau Автор вопроса
Maus Grau
Код тяжело поддерживать и расширять.

Ну тогда будет скорее в минус и тогда зачем C++... тут как бы если про скорость надо оставлять хранимки. Если про управляемость, то надо бы что-то уровнем повыше...

Maus Grau
И на той что сервис и на той что бд, там разные фу...

Да нет, я не про это. Код PG/PlSQL работает на сервере СУБД и внутри неё. А твой сервис — вне СУБД, и на другой машине. В этом и суть отличия. У тебя добавится раундтрипы за данными в БД и обратно, вот и смотри, если там что-то типа достал немного данных, а потом — сложная обработка на полчаса, то С++ сервис будет оправдан. Если там запрос-запрос-запрос-запрос - ты проиграешь.

Maus Grau
И на той что сервис и на той что бд, там разные фу...

Короче, ты лучшэ не парься про @MasterZiv , он любит на ровном месте кипишь разводить и вещать с таким видом, будто что-то важное.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта