भण्डारण प्रक्रियाहरू उच्च दक्षता र सुरक्षा फाइदाहरू डेलिभर गर्छन्
माइक्रोसफ्ट SQL सर्भरले भण्डारण-SQL बयानहरू व्यवस्थित ब्लकहरूमा समूहद्वारा डाटाबेस विकास प्रक्रियालाई सरल बनाउन भण्डार गरिएको प्रक्रिया तंत्र प्रदान गर्दछ। भण्डारण गरिएका प्रक्रियाहरू अधिकतर SQL Server विकासकर्ताहरू द्वारा सराहना गरिन्छ जसले दक्षता र सुरक्षा लाभहरू पाउँछ जुन उनीहरूको समयमा समयको अपरिवर्तनीय लगानीको योग्य हुन्छन्।
भण्डारण प्रक्रियाहरूको प्रयोगको लाभ
किन विकासकर्ताले भण्डारण गरिएका प्रक्रियाहरू प्रयोग गर्नुपर्दछ?
यहाँ यो प्रविधिको प्रमुख फाइदाहरू छन्:
- पूर्वनिर्धारित कार्यान्वयन: SQL Server प्रत्येक भण्डार गरिएको प्रक्रियालाई एकपटक कम्पोजि गर्दछ र त्यसपछि कार्यान्वयन योजनालाई पुन: सक्षम पार्दछ। जब भण्डारण प्रक्रियाहरू बारम्बार भनिन्छ जब यसले अत्यधिक प्रदर्शन वृद्धि बढाउँछ।
- क्लाइन्ट / सर्भर ट्राफिक कम: यदि तपाईको नेटवर्कमा सञ्जाल ब्यान्डविड्थ एक चिन्ता हो भने, तपाईं जान्न खुसी हुनुहुनेछ कि भन्डार गरिएका प्रक्रियाहरूले तारमा फैलिएको एकल रेखामा SQL प्रश्नहरू लामो गर्न सक्छ।
- कोड र प्रोग्रामिंग abstraction को कुशल पुनःप्रयोग: धेरै प्रयोगकर्ताहरु र ग्राहक कार्यक्रमहरु द्वारा संरक्षित प्रक्रियाहरु को उपयोग गर्न सकिन्छ। यदि तपाइँ तिनीहरूलाई योजनाबद्ध तरिकामा प्रयोग गर्नुहुन्छ भने, तपाईंले पाउनुहुनेछ विकास चक्र कम समय लाग्छ।
- सुधारिएको सुरक्षा नियन्त्रणहरू: तपाइँ प्रयोगकर्ताहरूलाई अंतर्निहित तालिका अनुमतिहरूबाट एक भण्डारण प्रक्रिया कार्यान्वयन गर्न अनुमति दिन सक्नुहुन्छ।
भण्डारण गरिएका प्रक्रियाहरू प्रयोगकर्ता-परिभाषित प्रकार्यहरूसँग समान छन्, तर सूक्ष्म भिन्नताहरू छन्।
संरचना
भण्डारण गरिएका प्रक्रियाहरू अन्य प्रोग्रामिङ भाषाहरूमा देखिएका निर्माणहरूको समान छन्।
तिनीहरू इनपुट प्यारामिटरहरूको रूपमा डेटा स्वीकार गर्दछ जुन निष्पादन समय निर्दिष्ट गरिएको छ। यी आगत प्यारामिटरहरू (यदि लागू भएमा) केहि परिणामहरू उत्पन्न गर्ने बयानको श्रृंखलामा कार्यान्वयनमा प्रयोग गरिन्छ। यो परिणाम रेकर्डट, आउटपुट प्यारामिटर र फिर्ती कोडको प्रयोग गरी फोन गर्दै वातावरणमा फर्किएको छ।
त्यो गन्ध जस्तो लाग्न सक्छ, तर तपाईले पत्ता लगाउनुभएको भण्डारण प्रक्रियाहरू वास्तवमा धेरै सरल छन्।
उदाहरण
यस पृष्ठको तल्लोमा देखाईएको सूचीमा रहेको तालिकामा रहेको तालिकासँग सम्बन्धित व्यावहारिक उदाहरणमा हेरौं। यो जानकारी वास्तविक समयमा अपडेट गरिएको छ, र गोदाम प्रबन्धकहरू लगातार उनीहरूको गोदाममा भण्डारण गरिएका सामग्रीहरूको स्तर जाँच गर्दै छन् र ढुवानीको लागि उपलब्ध छन्। विगतमा, प्रत्येक प्रबन्धकले निम्नसँग समान प्रश्नहरू चलाउनेछ:
चयन उत्पादन, मात्रा
सूचीबाट
जहाँ गोदाम = 'FL'
यसले परिणामस्वरूप SQL Server मा अपर्याप्त प्रदर्शन गर्यो। प्रत्येक पल्ट एक गोदाम प्रबन्धकले क्वेरीलाई निष्पादित गर्यो, डाटाबेस सर्भरले क्वेरीलाई पुन: लगाईयो र यो खरिदबाट कार्यान्वयन गर्न बाध्य भयो। यो पनि तालिका जानकारी पहुँच गर्न एसएलसी र उपयुक्त अनुमतिहरूको ज्ञान हुन गोदाम प्रबन्धकलाई आवश्यक पर्दछ।
यसको सट्टा, प्रक्रिया भण्डारण प्रक्रियाको प्रयोग गरेर सरलीकृत गर्न सकिन्छ। यहाँ एक प्रक्रिया को लागि कोड छ sp_GetInventory जो दिइएको गोदाम को लागि सूची स्तर को पुनर्प्राप्त गर्दछ।
PROCEDURE sp_GetInventory सिर्जना गर्नुहोस्
@ vocation varchar (10)
AS
चयन उत्पादन, मात्रा
सूचीबाट
कहाँ गोदाम = @ स्थानान्तरण
फ्लोरिडा गोदाम प्रबन्धकले त्यसपछि आदेश जारी गरेर इन्वेंट्री स्तरहरूमा पहुँच गर्न सक्छ:
EXECUTE sp_GetInventory 'FL'
न्यूयर्क गोदाम प्रबन्धकले त्यो क्षेत्रको इन्वेंटरी पहुँच गर्न एकै भण्डारण प्रक्रिया प्रयोग गर्न सक्छ:
EXECUTE sp_GetInventory 'NY'
दिइएको छ, यो एक सरल उदाहरण हो, तर अमूर्तको फाइदा यहाँ हेर्न सकिन्छ। गोदाम प्रबन्धकले SQL वा बाह्य कार्यविधिलाई प्रक्रियाको बारेमा बुझ्न आवश्यक छैन। प्रदर्शनको परिप्रेक्ष्यबाट, भण्डार गरिएको प्रक्रियाले चमत्कार गर्दछ। SQL सर्भरले एक कार्यान्वयन योजना सिर्जना गर्दछ र त्यसपछि यसलाई उपयुक्त मापदण्डहरूमा निष्पादन समय मा plugging द्वारा reutilizes।
अब तपाईंले भण्डार गरिएका प्रक्रियाहरूको फाइदाहरू सिकेका छन्, त्यहाँ जानुहोस् र तिनीहरूलाई प्रयोग गर्नुहोस्।
केहि उदाहरणहरू प्रयास गर्नुहोस् र प्राप्त कार्यसम्पादन परिमार्जनहरू उपाय गर्नुहोस् - तपाईं आश्चर्यचकित हुनुहुनेछ!
सूची तालिका
| आईडी | उत्पादन | गोदाम | मात्रा |
| 142 | हरियो सेम | NY | 100 |
| 214 | मटर | FL | 200 |
| 825 | मकै | NY | 140 |
| 512 | लीमा सिमी | NY | 180 |
| 491 | टमाटर | FL | 80 |
| 37 9 | तरबूज | FL | 85 |