переделать это на C++ , и уже готовый запрос кидать в postgres. Стантет ли хуже производительность?
PS суть вопроса: что быстрее работает do с кучами if else и т п или готовый запрос, ведь do postgres сможет подготовить заранее или нет?
Прикольный поинт... если речь про PL/pgsql то мне тоже интересен результат переписывания. Хотите расширение для postgres сделать или вынести просто в сервис расчеты? Есть кейсы при котором в PL/pgSQL написали настолько лютую считалку что её вынос в сервис имеет смысл даже с учетом всех накладных?
do особенно не готовится заранее. Дажэ кэшырование pl/pgsql довольно такое, относительное. А уж do -- всегда с нуля парзится. С другой стороны -- в некоторых случаях есть шанс, что round-trip до клиента на C++ можэт иметь значение. С третьей стороны -- в среднем интэрпретацыя цыклов в postgres настолько небыстрая, что на одном хосте по unix-domain sockets скорее решэние на C++ чуть-чуть выиграет (для большынства кода, написанного под pgsql это впрочем будет на грани точности измерения в любом случае). ЗЫ А почему C++? Какбы... Ну, довольно проблемный язык. Зачем?
PGSQL где работает?
Просто вынести все лишнее, так куча расчетов всяких дат, размеров, которые по факту не зависят от таблиц и их можно сделать на плюсах и потом уже закинуть в запрос.
Хороший язык и сервис уже на нем
В смысле где?)
А когда сделаете расшарите метрики? Мне интересно реально можно получать внушительный прирост таким образом?
На какой машине, на каком хосте? И где будет работать С++ -приложение.
Прирост врядли будет, главное чтобы в минус не ушло) А так пока не известно будем ли это делать ведь нужно еще согласовать с 1000 менеджеров, чтобы набрать аргументы решил спросить)
Машины сервиса и базы разные но они близко)
Так ещё раз, на какой машине PG/PLSQL -код работает сейчас ?
эм... а если "прирост вряд ли будет" тогда не скромный вопрос "зачем"?
И на той что сервис и на той что бд, там разные функции или хар-ки машины надо?)
Код тяжело поддерживать и расширять.
Ну тогда будет скорее в минус и тогда зачем C++... тут как бы если про скорость надо оставлять хранимки. Если про управляемость, то надо бы что-то уровнем повыше...
Да нет, я не про это. Код PG/PlSQL работает на сервере СУБД и внутри неё. А твой сервис — вне СУБД, и на другой машине. В этом и суть отличия. У тебя добавится раундтрипы за данными в БД и обратно, вот и смотри, если там что-то типа достал немного данных, а потом — сложная обработка на полчаса, то С++ сервис будет оправдан. Если там запрос-запрос-запрос-запрос - ты проиграешь.
Короче, ты лучшэ не парься про @MasterZiv , он любит на ровном месте кипишь разводить и вещать с таким видом, будто что-то важное.
Обсуждают сегодня