Сақталған процедуралар жоғары тиімділік пен қауіпсіздік артықшылықтарын қамтамасыз етеді
Microsoft SQL Server бағдарламасы Transact-SQL операторларын басқарылатын блоктарға топтау арқылы дерекқор әзірлеу процесін жеңілдету үшін сақталатын процедура механизмін береді. Сақталған процедураларды тиімділік пен қауіпсіздіктің пайдасын табатын SQL Server әзірлеушілерінің көпшілігі бағалайды, олар уақытында алдын ала инвестициялауға тұрарлық.
Сақталған процедураларды пайдаланудың артықшылықтары
Неліктен әзірлеуші сақталатын рәсімдерді пайдалану керек?
Бұл технологияның негізгі артықшылықтары:
- Алдын ала жинақталған орындалу: SQL Server әрбір сақталған процедураны бір рет жинайды, содан кейін орындалу жоспарын қайта жасайды. Бұл сақталған процедуралар бірнеше рет шақырылғанда, өнімділіктің ұлғаюына әкеледі.
- Клиенттік / серверлік трафикті төмендету: егер желінің өткізу қабілеті сіздің ортаңызда алаңдаушылық тудырса, сақталатын процедуралар ұзын SQL сұрауларын сым арқылы берілетін бір жолға азайта алатынын білуге қуанышты боласыз.
- Кодты тиімді пайдалану және бағдарламалауды абстракциялау: сақталған процедураларды бірнеше пайдаланушы және клиент бағдарламалары пайдалана алады. Егер оларды жоспарлы түрде қолдансаңыз, даму циклі аз уақыт алады.
- Жетілдірілген қауіпсіздік басқару элементтері: Пайдаланушыларға негізгі кесте рұқсаттарынан тәуелсіз сақталатын процедураны орындауға рұқсат беруіңізге болады.
Сақталған процедуралар пайдаланушы анықтайтын функцияларға ұқсас, бірақ нашар айырмашылықтар бар.
Құрылым
Сақталған процедуралар басқа бағдарламалау тілдерінде көрінетін конструкцияларға ұқсас.
Олар орындалу уақытында көрсетілген кіріс параметрлері түріндегі деректерді қабылдайды. Бұл кіріс параметрлері (егер іске асырылса) кейбір нәтиже беретін бірқатар мәлімдемелерді орындау кезінде қолданылады. Бұл нәтиже жазбалар жиынтығын, шығыс параметрлерін және қайтару кодын пайдалану арқылы қоңырау ортасына қайтарылады.
Бұл аузына ұқсас болуы мүмкін, бірақ сақталатын рәсімдер өте оңай.
Мысал
Осы беттің төменгі жағында көрсетілген инвентарь деп аталатын үстелге қатысты практикалық мысал қарастырайық. Бұл ақпарат нақты уақыт режимінде жаңартылып отырады және қойма менеджерлері қоймада сақталатын және жіберу үшін қол жетімді өнімдердің деңгейлерін үнемі тексеріп отырады. Бұрын әр менеджер төмендегідей сұрауларды орындады:
ТАҢДАУ Өнім, Саны
Тауар тізімінен
WHERE Warehouse = 'FL'
Бұл SQL Server серверінде тиімсіз жұмыс істеуге әкелді. Қойма басқарушысы сұранысты әр орындаған сайын, дерекқор сервері сұрауды қайта құрастырып, оны нөлден орындауға мәжбүр болды. Сонымен қатар қойманың менеджеріне SQL туралы білу және кесте ақпаратын ашу үшін тиісті рұқсаттар қажет болды.
Оның орнына, процесті сақталатын процедураны пайдалану арқылы жеңілдетуге болады. Мұнда sp_GetInventory деп аталатын рәсімнің коды, ол осы қойма үшін түгендеу деңгейлерін шығарады.
ПРОЦЕДУРА CREATE sp_GetInventory
@Location varchar (10)
AS
ТАҢДАУ Өнім, Саны
Тауар тізімінен
WHERE қоймасы = @ орналасуы
Флорида қоймасының басқарушысы төмендегі пәрменді шығару арқылы инвентарь деңгейіне қол жеткізе алады:
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 |