Захоўваемыя працэдуры забяспечваюць высокую эфектыўнасць і перавага бяспекі
Microsoft SQL Server прадастаўляе зберажоную механізм працэдуры, каб спрасціць працэс распрацоўкі баз дадзеных шляхам групоўкі аператараў Transact-SQL на кіраваныя блокі. Захоўваемыя працэдуры ацэнены большасць распрацоўнікаў SQL Server, якія знаходзяць эфектыўнасці і бяспеку выгаду, якія яны пажынаюць добра варта першапачатковых укладанняў часу.
Перавагі выкарыстання захоўваемых працэдур
Чаму выкарыстанне распрацоўніка павінен захоўваемыя працэдуры?
Вось асноўныя перавагі гэтай тэхналогіі:
- Скампіляваная выкананне: SQL Server кампілюе кожную зберажоную працэдуру адзін раз , а затым reutilizes плана выканання. Гэта прыводзіць да вялізнага павелічэння прадукцыйнасці, калі захоўваемыя працэдуры выклікаюцца паўторна.
- Зніжэнне трафіку кліент / сервер: Калі прапускная здольнасць сеткі з'яўляецца праблемай у вашай асяроддзі, вы будзеце рады даведацца , што захоўваемыя працэдуры могуць скараціць доўгія запыты SQL ў адным радку, якая перадаецца па правадах.
- Эфектыўнае паўторнае выкарыстанне кода і праграмавання абстракцыі: захоўваемыя працэдуры могуць выкарыстоўвацца некалькімі карыстальнікамі і кліенцкімі праграмамі. Калі вы выкарыстоўваеце іх у планавым парадку, вы знойдзеце цыкл развіцця займае менш часу.
- Пашыраныя сродкі бяспекі: Вы можаце даць карыстальнікам дазволу на выкананне захоўваемай працэдуры незалежна ад базавых дазволаў табліцы.
Захоўваемыя працэдуры аналагічныя функцый, вызначаюцца карыстальнікам, але ёсць тонкія адрозненні.
структура
Захоўваемыя працэдуры аналагічныя канструктаў бачылі ў іншых мовах праграмавання.
Яны прымаюць дадзеныя ў выглядзе ўваходных параметраў, якія пазначаны падчас выканання. Гэтыя ўваходныя параметры (калі рэалізавана) выкарыстоўваецца пры выкананні шэрагу сцвярджэнняў, якія вырабляюць нейкі вынік. Гэты вынік вяртаецца выклікалай праграма праз выкарыстанне запісаў, выходныя параметры і коды вяртання.
Гэта можа гучаць як глотка, але вы выявіце, што захоўваемыя працэдуры на самай справе даволі проста.
прыклад
Давайце паглядзім на практычны прыкладзе, звязаны з табліцай з імем інвентара праяўленай у ніжняй частцы гэтай старонкі. Гэтая інфармацыя абнаўляецца ў рэжыме рэальнага часу, а таксама складскія менеджэры пастаянна правяраць ўзровень прадукцыі, якая захоўваецца на іх складзе і даступныя для адгрузкі. У мінулым, кожны менеджэр будзе выконваць запыты, падобныя наступнага:
Выбар прадукту, Колькасць
FROM Inventory
ДЗЕ Warehouse = 'FL'
Гэта прывяло да неэфектыўнага прадукцыйнасці ў SQL Server. Кожны раз, калі менеджэр склада выканаў запыт, сервер базы дадзеных быў вымушаны перакампіляваць запыт і выканаць яго з нуля. Акрамя таго, патрабуецца менеджэр склада, каб мець веданне SQL і адпаведных дазволаў для доступу да інфармацыі табліцы.
Замест гэтага, гэты працэс можа быць спрошчаны за кошт выкарыстання захоўваемай працэдуры. Вось код для працэдуры, званай sp_GetInventory, якія атрымліваюць ўзроўні запасаў для дадзенага склада.
CREATE PROCEDURE sp_GetInventory
@location VARCHAR (10)
AS
Выбар прадукту, Колькасць
FROM Inventory
ДЗЕ Warehouse = @location
Склад Фларыда можа атрымаць доступ да ўзроўняў запасаў, выканаўшы каманду:
ВЫКАНАЦЬ sp_GetInventory 'FL'
Складской менеджэр Нью-Ёрк можа выкарыстоўваць тую ж зберажоную працэдуру, каб атрымаць доступ да інвентарызацыі гэтай зоны:
ВЫКАНАЦЬ sp_GetInventory 'NY'
Вядома, гэта просты прыклад, але перавагі абстракцыі можна ўбачыць тут. Менеджэр склада ня трэба разумець SQL ці ўнутраныя работы працэдуры. З пункту гледжання прадукцыйнасці, захоўваемая працэдура творыць цуды. SQL Server стварае план выканання адзін раз, а затым reutilizes яго, падлучыўшы адпаведныя параметры падчас выканання.
Зараз, калі вы даведаліся перавагі захоўваемых працэдур, атрымаць там і выкарыстоўваць іх.
Паспрабуйце некалькі прыкладаў і вымераць павелічэнне прадукцыйнасці дасягаецца яе надзейнасці здзіўлены!
інвентар Табліца
ID | прадукт | склад | колькасць |
142 | зялёная фасолю | Нью-Ёрк | 100 |
214 | гарох | Фларыда | 200 |
825 | мазоль | Нью-Ёрк | 140 |
512 | Лімская фасолю | Нью-Ёрк | 180 |
491 | памідоры | Фларыда | 80 |
379 | кавун | Фларыда | 85 |