SQL Server чуваат процедури

Зачуваните процедури обезбедуваат високи ефикасности и безбедносни придобивки

Microsoft SQL Server обезбедува складирана процедура механизам за да се поедностави процесот на развој на база на податоци со групирање на Transact-SQL извештаи во контролираните блокови. Зачувани процедури се ценети од страна на повеќето развивачи на SQL Server, кои сметаат дека ефикасноста и безбедносните придобивки што ги добиваат се добро вредни за однапред инвестирање во времето.

Предности на користење на зачувани процедури

Зошто инвеститорот треба да користи складирани процедури?

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

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

Структура

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

Тие прифаќаат податоци во форма на влезни параметри кои се специфицирани во времето на извршување. Овие влезни параметри (ако се имплементираат) се користат во извршувањето на серија на изјави кои произведуваат одреден резултат. Овој резултат се враќа во повикувачката околина преку употреба на евиденција, излезни параметри и код за враќање.

Тоа може да звучи како залак, но ќе откриете дека складираните постапки се навистина едноставни.

Пример

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

Избери производ, количина
Од Инвентар
КАДЕ Магацин = 'FL'

Ова резултираше со неефикасна изведба на SQL Server. Секојпат кога менаџерот на складиште го извршил барањето, серверот за базата на податоци беше принуден да го прекомпанира барањето и да го изврши од нула. Исто така, бараше менаџерот на магацин да има познавање на SQL и соодветни дозволи за пристап до информациите од табелата.

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

КРЕАЦИЈА ПОСТАПКА sp_GetInventory
@location varchar (10)
AS
Избери производ, количина
Од Инвентар
КАДЕ Магацин = @ локација

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

EXECUTE sp_GetInventory 'FL'

Управникот на магацинот во Њујорк може да ја користи истата процедура за чување за да пристапи до инвентарот на тој простор:

EXECUTE sp_GetInventory "NY"

Точно, ова е едноставен пример, но придобивките од апстракцијата може да се видат овде. Менаџерот на магацинот не треба да го разбере SQL или внатрешното работење на постапката. Од гледна точка на изведба, складираната постапка работи со чуда. SQL Server креира план за извршување еднаш, а потоа го реализира со вклучување на соодветните параметри во времето за извршување.

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

Обидете се со неколку примери и мерете ги подобрувањата во перформансите - ќе бидете изненадени!

Табела за инвентаризација

ID Производ Магацин Квантитет
142 Зелен грав NY 100
214 Грашок FL 200
825 Пченка NY 140
512 Лима грав NY 180
491 Домати FL 80
379 Лубеница FL 85