SQL Server съхранени процедури

Съхранените процедури осигуряват висока ефективност и ползи за сигурността

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

Ползи от използването на съхранени процедури

Защо разработчикът трябва да използва съхранени процедури?

Ето основните ползи от тази технология:

Съхраняваните процедури са подобни на функциите, дефинирани от потребителя, но има фини разлики.

структура

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

Те приемат данни под формата на входни параметри, които са посочени при изпълнението. Тези входни параметри (ако са приложени) се използват при изпълнението на поредица от изрази, които дават резултат. Този резултат се връща на повикващата среда чрез използване на набор от записи, параметри на изхода и код за връщане.

Това може да звучи като хапче, но ще откриете, че съхранените процедури всъщност са доста прости.

пример

Нека да разгледаме практически пример, свързан с таблицата, озаглавена "Инвентаризация", показана в долната част на тази страница. Тази информация се актуализира в реално време и мениджърите на складовете непрекъснато проверяват нивата на продуктите, съхранявани в техния склад и налични за доставка. В миналото всеки мениджър би направил заявки, подобни на следното:

SELECT продукт, количество
От инвентаризация
WHERE Склад = 'FL'

Това доведе до неефективна работа на SQL Server. Всеки път, когато мениджърът на склада изпълни заявката, сървърът на базата данни бе принуден да прекомпилира заявката и да я изпълни от нулата. Освен това е необходимо мениджърът на складовете да има познания за SQL и съответните разрешения за достъп до информацията за таблицата.

Вместо това процесът може да бъде опростен чрез използването на запомнена процедура. Ето кода на процедура наречена sp_GetInventory, която извлича нивата на рекламните места за даден склад.

ПРОЦЕДУРА НА СЪЗДАВАНЕ sp_GetInventory
@location varchar (10)
КАТО
SELECT продукт, количество
От инвентаризация
WHERE Склад = @ местоположение

След това мениджърът на складовете във Флорида може да осъществи достъп до нивата на инвентара, като издава команда:

EXECUTE sp_GetInventory 'FL'

Складовият мениджър в Ню Йорк може да използва същата съхранена процедура за достъп до инвентара на тази област:

EXECUTE sp_GetInventory 'NY'

Даде се, това е един прост пример, но ползите от абстракцията могат да се видят тук. Мениджърът на складовете не трябва да разбира SQL или вътрешната работа на процедурата. От гледна точка на представянето, запомнената процедура прави чудеса. SQL Server създава план за изпълнение веднъж и след това го използва повторно, като включи съответните параметри в момента на изпълнение.

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

Опитайте няколко примера и измерете постигнатото подобрение на ефективността - ще бъдете изумени!

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

документ за самоличност продукт Склад количество
142 Зелен боб Ню Йорк 100
214 грах FL 200
825 царевица Ню Йорк 140
512 Лима фасул Ню Йорк 180
491 домати FL 80
379 диня FL 85