Мицрософт СКЛ Сервер обезбеђује механизам сачуваног поступка за поједностављивање процеса развоја базе података групирањем Трансацт-СКЛ израза у управљачким блоковима. Већина СКЛ Серверових програмера који цене ефикасност и сигурну предност коју користе, вреднују унапред улагања у времену.
Користи коришћења ускладиштених процедура
Зашто би програмер требао користити похрањене процедуре?
Ево кључних предности ове технологије:
- Претходно компајлирано извршење: СКЛ Сервер једном саставља сваку похрањену процедуру и поново користи план извршења. Ово доводи до огромног повећања перформанси када се похрањене процедуре позивају више пута.
- Смањен клијент / сервер: Ако је мрежни пропусни опсег забринут у вашем окружењу, бићете срећни што ћете сазнати да ускладиштене процедуре могу смањити дуге СКЛ упите на једну линију која се преноси преко жице.
- Ефикасна поновна употреба кода и апстракција програма: Чуване процедуре могу користити вишеструки корисници и клијентски програми. Ако их искористите на планиран начин, видећете да развојни циклус траје мање времена.
- Побољшане сигурносне контроле: Корисницима можете дозволити да изврше складиштену процедуру независно од дозвољених дозвола таблице.
Схрањене процедуре су сличне корисничким функцијама, али постоје суптилне разлике.
Структура
Чуване процедуре сличне су конструкцијама које се виде у другим програмским језицима.
Прихватају податке у облику улазних параметара који су наведени у вријеме извршења. Ови улазни параметри (ако се имплементирају) користе се у извршењу серије изјава које производе неки резултат. Овај резултат се враћа у позивно окружење кориштењем регистра, параметара излазних података и повратног кода.
То може звучати као уста, али ћете наћи да су похрањене процедуре заправо прилично једноставне.
Пример
Хајде да погледамо практичан пример који се односи на таблицу названу инвентар приказан на дну ове странице. Ове информације се ажурирају у реалном времену, а руководиоци складишта стално проверавају нивое производа који се чувају у свом складишту и доступни за испоруку. У прошлости, сваки менаџер ће покренути упите сличне следећим:
СЕЛЕЦТ Продуцт, КуантитиФРОМ ИнвенториВХЕРЕ Варехоусе = 'ФЛ'
Ово је резултирало неефикасним перформансама на СКЛ Серверу. Сваки пут када је менаџер складишта извршио упит, сервер базе података био је принуђен да поново изврши компајлирање и изврши га из нуле. Такође је захтевао да менаџер складишта има знања о СКЛ-у и одговарајуће дозволе за приступ информацијама таблице.Уместо тога, процес се може поједноставити употребом ускладиштене процедуре. Ево шифре процедуре која се зове сп_ГетИнвентори која преузима ниво инвентара за одређено складиште. Менадзер магацина у Флориди може онда приступити нивоима инвентара издавањем наредбе: Менаџер магацина складишта у Њујорку може користити исту ускладиштену процедуру за приступ попису тог подручја: Наравно, ово је једноставан пример, али предности апстракције могу се видети овде. Менаџер складишта не мора разумјети СКЛ или унутрашње радње поступка. Из перспективе перформанси, чувена процедура ради на чудама. СКЛ Сервер једном креира план за извршење, а затим га поново извршава укључивањем одговарајућих параметара у време извршења.Сада када сте научили предности складиштених процедура, изадите тамо и користите их. Пробајте неколико примера и измерите побољшања перформанси постигнутих - бићете запањени! Табела инвентараЦРЕАТЕ ПРОЦЕДУРЕ сп_ГетИнвентори@лоцатион варцхар (10)КАОСЕЛЕЦТ Продуцт, КуантитиФРОМ ИнвенториГдје је складиште = @локацијаЕКСЕЦУТЕ сп_ГетИнвентори 'ФЛ'ЕКСЕЦУТЕ сп_ГетИнвентори 'НИ'ИД Производ Складиште Количина 142 Боранија НИ 100 214 Пеас ФЛ 200 825 Кукуруз НИ 140 512 Лима пасуљ НИ 180 491 Парадајз ФЛ 80 379 Лубеница ФЛ 85













