По поводу cost оно отрабатывает на функциях immutable и stable желательно со свойством leakproof, postgresql может для immutable заменить вызов функции константой и передать это в executor, а для stable тоже заменить константой но уже в ексекьютере. Короче говоря нужно смотреть категорию изменчивости функции в комплексе с cost.
Не очень понятные объяснения. Нужно более четко и структурировано - это заодно сократит хронометраж. Текст в редакторе не видно - в таких случаях обычно увеличивают шрифт или масштаб активной части экрана. Надеюсь, моя критика чем-то поможет. Большое спасибо за труд!
Не о чём. Для кого это материал? Какие-то отступления ненужные, ненужные объяснения ненужных вещей. До середины дотерпел, по теме - ноль информации. Название многообещающее, по факту - набор специфичных деталей, которые не нужны людям, которые ищут видео по запросу "sql процедуры".
У pg по умолчанию вся функция выполняется в транзакции. Почитайте postgrespro.ru/docs/postgrespro/15/plpgsql-transactions Но вообще с функциями надо аккуратнее - обычно лучше в код вынести, так как он лучше масштабируется
Я так подозреваю, что именно cost и rows - залог успешного успеха использования таких вот функций в Ваших проектах. Табличные функции в коде SQL могут много бед наделать, если оптимизатор будет неверно рассчитывать их стоимость.
Я сейчас редко использую хранимки, так как код не в БД лучше масштабируется. Они хороши для рефакторинга чего-то старого, чтобы не лезть в старый код вообще, так как хз где так сохранения и апдейты. Грубо говоря берешь и где-т сбоку строишь новую лучшую инфраструктуру и просто храниками перекладываешь что-то куда-то, НО обязательно все это нужно выпилить из проекта через время.
Для тех, кто попадет в этот коммент прикладываю ссылку. По сути разница есть, но крайне незначительная для большинства проектов. postgrespro.ru/docs/postgrespro/15/xproc
По поводу cost оно отрабатывает на функциях immutable и stable желательно со свойством leakproof, postgresql может для immutable заменить вызов функции константой и передать это в executor, а для stable тоже заменить константой но уже в ексекьютере.
Короче говоря нужно смотреть категорию изменчивости функции в комплексе с cost.
10 минут посмотрел так и не понял как функции писать
Посмотрите до конца
Не очень понятные объяснения. Нужно более четко и структурировано - это заодно сократит хронометраж.
Текст в редакторе не видно - в таких случаях обычно увеличивают шрифт или масштаб активной части экрана.
Надеюсь, моя критика чем-то поможет. Большое спасибо за труд!
спасибо! шикарный голос у вас :)
Спасибо за ролик
видео супер!
Не о чём. Для кого это материал? Какие-то отступления ненужные, ненужные объяснения ненужных вещей. До середины дотерпел, по теме - ноль информации. Название многообещающее, по факту - набор специфичных деталей, которые не нужны людям, которые ищут видео по запросу "sql процедуры".
Сними свой хороший и полезный видос, обсудим
А мне было интересно !
Тебе не нужные, а мне нужные
Заметила, что postgres не дает сделать commit в теле функции. Это почему так?
У pg по умолчанию вся функция выполняется в транзакции. Почитайте postgrespro.ru/docs/postgrespro/15/plpgsql-transactions
Но вообще с функциями надо аккуратнее - обычно лучше в код вынести, так как он лучше масштабируется
@@lets_goto_it ок, спасибо.
Я так подозреваю, что именно cost и rows - залог успешного успеха использования таких вот функций в Ваших проектах. Табличные функции в коде SQL могут много бед наделать, если оптимизатор будет неверно рассчитывать их стоимость.
Я сейчас редко использую хранимки, так как код не в БД лучше масштабируется.
Они хороши для рефакторинга чего-то старого, чтобы не лезть в старый код вообще, так как хз где так сохранения и апдейты. Грубо говоря берешь и где-т сбоку строишь новую лучшую инфраструктуру и просто храниками перекладываешь что-то куда-то, НО обязательно все это нужно выпилить из проекта через время.
процедуры и функции - это не одно и тоже! название ролика абсурдное!
Для тех, кто попадет в этот коммент прикладываю ссылку. По сути разница есть, но крайне незначительная для большинства проектов. postgrespro.ru/docs/postgrespro/15/xproc
очень круто !!!