ЯП? О скорости тут речь не идет, если вы не обрабатываете данные хранящие прямо в этой же базе
Я не люблю хранимки, но конкретно в данном случае решение зависит не от меня. Я прекрасно понимаю плюсы реализации в коде бэкенда
вряд ли вы разбираетесь в сути того, что спрашиваете
Если б разбирался бы, то и не спрашивал бы. Я хранимки ранее юзал только в MsSQL
Хранимка это интерфейс к данным, которые лежат в базе. Если вы хотите использовать их для например fdw то пуркуа ба не па
Внутри хранимки могут быть тысячи строк кода. Т.е. хранимка может дойти до такого состояния, при котором её будет сложно поддерживать и оптимизировать. А отсутствие возможности явным образом параллелить те или иные участки означает, что и возможности оптимизации скорости её работы ограничены.
а метод в коде что, не может быть в таком плачевном состоянии?)
Может, но в коде есть потоки, и я могу распараллелить логику
Каждый отдельный запрос хроники может параллелиться, если планировщик решит, что это целесообразно.
каким образом, если код не параллелится? а если параллелится, то вы на разные методы разбиваете. Аналогично и с хранимками. Если можно что-то распраллелить, вначале декомпоизируйте хранимку и затем вызывайте её из разных потоков. Разницы никакой
Мне кажется, вы спрашивали про использование хранимых процедур а не про написание мультипотока на sql?
А зачем тогда вообще хранимка? Чисто чтобы можно было править её внутреннюю логику, не трогая код клиентов?
Дмитрий, языки хранимых процедур - это 4GL, там очень высокоуровневый язык, он гораздо проще поддерживается, чем любой 3GL. У него гораздо более мощные операции, и строк в хранимках как правило гораздо меньше, минимум - на порядок (в 10 раз), чем в аналогичном коде на языке клиента. Что снова сказывается на поддержке в лучшую сторону. Плюс на этом языке ТОЧНО есть все операции со всеми типами данных, хранимыми в БД, и не будет проблем в разнице представлений данных в БД и на клиенте, что ОЧЕНЬ сильно сказывается на надёжности. Единственное, на что хранимые процедуры не способны - это матвычисления, но это и естественно - они не для этого всего были сделаны.
именно. + хранимка даёт контракт взаимодействия - регламентирует название метода, даёт описание входные и выходных аргументов. а как её уже реализуют DBD, разработчика уже не волнует.
Обсуждают сегодня