Чисто теоретический вопрос
Имеет ли смысл использовать "процедурный" подход при написании ХП?
Т.е. использовать много процедур в одной. Например, Proc1 вызывает Proc2, Proc3, Proc4...
А исполозовать много вложенных процедур? Например, Proc1 вызывает Proc2, которая вызывает Proc3 и т.п.
Или лучше писать много кода (иногда даже повторяющегося) в одной процедуре?
Как это скажется на производительности базы?
Дурацкий вопрос про ХП
Чиста теоретический ответ. А Х его З. В общем-то случае. С одной стороны, размеры как текста процедуры, так и её BLR ограничены. Так что ежели она на Титаник смахивает, то её по любому нарубить придётся - не скомпилируется. С другой стороны, ежели меняться потом будет формат вызова мелких процедур - ну там количество и типаж параметров - то будет некоторый гемор с перекомпилированием всей флотилии малых судов. Опять же с одной стороны, если меняется алгоритм, то дешевле и надёжней его править в одном месте, а не вспоминать где ещё есть такой же код. Опять же с другой стороны, если код вложенной процедуры-метода, вызываемой из тыщи разных мест, будет не меняться, а усложняться и ветвиться по мере прогресса представлений о предметной области, патамушта при вызове вот отсуда она должна отработать так, а при вызове вот отсуда эдак, то она может превратиться в неуправляемую систему заплаток.
(Уходит в себя, загибая пальцы и бормоча под нос - с одной стороны... с другой стороны...)
Нда. Так вот - по месту надо решать, по месту. Вызов (препарирование и контроль прав) грозди будет малость дороже однократного, но на практике и в разумных пределах это полная фигня по сравнению с мировой революцией, сиречь планами запросов внутри процедур, которые будут выполняться хоть в лоб хоть по лбу. С другой стороны, если речь об управлении крылатой ракетой...
(Уходит в себя, загибая пальцы и бормоча под нос - с одной стороны... с другой стороны...)
Нда. Так вот - по месту надо решать, по месту. Вызов (препарирование и контроль прав) грозди будет малость дороже однократного, но на практике и в разумных пределах это полная фигня по сравнению с мировой революцией, сиречь планами запросов внутри процедур, которые будут выполняться хоть в лоб хоть по лбу. С другой стороны, если речь об управлении крылатой ракетой...