СКЛ Сервер сачуване процедуре

Схрањене процедуре дају високу ефикасност и сигурносне предности

Мицрософт СКЛ Сервер обезбеђује механизам сачуваног поступка за поједностављивање процеса развоја базе података групирањем Трансацт-СКЛ израза у управљачким блоковима. Већина СКЛ Серверових програмера који цене ефикасност и сигурну предност коју користе, вреднују унапред улагања у времену.

Користи коришћења ускладиштених процедура

Зашто би програмер требао користити похрањене процедуре?

Ево кључних предности ове технологије:

Схрањене процедуре су сличне корисничким функцијама, али постоје суптилне разлике.

Структура

Чуване процедуре сличне су конструкцијама које се виде у другим програмским језицима.

Прихватају податке у облику улазних параметара који су наведени у вријеме извршења. Ови улазни параметри (ако се имплементирају) користе се у извршењу серије изјава које производе неки резултат. Овај резултат се враћа у позивно окружење кориштењем регистра, параметара излазних података и повратног кода.

То може звучати као уста, али ћете наћи да су похрањене процедуре заправо прилично једноставне.

Пример

Хајде да погледамо практичан пример који се односи на таблицу названу инвентар приказан на дну ове странице. Ове информације се ажурирају у реалном времену, а руководиоци складишта стално проверавају нивое производа који се чувају у свом складишту и доступни за испоруку. У прошлости, сваки менаџер ће покренути упите сличне следећим:

СЕЛЕЦТ Продуцт, Куантити
ФРОМ Инвентори
ВХЕРЕ Варехоусе = 'ФЛ'

Ово је резултирало неефикасним перформансама на СКЛ Серверу. Сваки пут када је менаџер складишта извршио упит, сервер базе података био је принуђен да поново изврши компајлирање и изврши га из нуле. Такође је захтевао да менаџер складишта има знања о СКЛ-у и одговарајуће дозволе за приступ информацијама таблице.

Уместо тога, процес се може поједноставити употребом ускладиштене процедуре. Ево шифре процедуре која се зове сп_ГетИнвентори која преузима ниво инвентара за одређено складиште.

ЦРЕАТЕ ПРОЦЕДУРЕ сп_ГетИнвентори
@лоцатион варцхар (10)
КАО
СЕЛЕЦТ Продуцт, Куантити
ФРОМ Инвентори
Гдје је складиште = @локација

Менадзер магацина у Флориди може онда приступити нивоима инвентара издавањем наредбе:

ЕКСЕЦУТЕ сп_ГетИнвентори 'ФЛ'

Менаџер магацина складишта у Њујорку може користити исту ускладиштену процедуру за приступ попису тог подручја:

ЕКСЕЦУТЕ сп_ГетИнвентори 'НИ'

Наравно, ово је једноставан пример, али предности апстракције могу се видети овде. Менаџер складишта не мора разумјети СКЛ или унутрашње радње поступка. Из перспективе перформанси, чувена процедура ради на чудама. СКЛ Сервер једном креира план за извршење, а затим га поново извршава укључивањем одговарајућих параметара у време извршења.

Сада када сте научили предности складиштених процедура, изадите тамо и користите их.

Пробајте неколико примера и измерите побољшања перформанси постигнутих - бићете запањени!

Табела инвентара

ИД Производ Складиште Количина
142 Боранија НИ 100
214 Пеас ФЛ 200
825 Кукуруз НИ 140
512 Лима пасуљ НИ 180
491 Парадајз ФЛ 80
379 Лубеница ФЛ 85