સંગ્રહિત કાર્યવાહી ઉચ્ચ કાર્યક્ષમતા અને સુરક્ષા લાભો વિતરિત કરે છે
માઇક્રોસોફ્ટ SQL સર્વર મેનેજ કરી શકાય તેવા બ્લોકમાં ટ્રાન્ઝેક-એસક્યુએલ સ્ટેટમેન્ટ્સને જૂથબદ્ધ કરીને ડેટાબેઝ ડેવલપમેન્ટ પ્રક્રિયાને સરળ બનાવવા માટે સંગ્રહિત કાર્યપદ્ધતિ પદ્ધતિ પૂરી પાડે છે. મોટાભાગના SQL સર્વર વિકાસકર્તાઓ દ્વારા સંગ્રહીત પ્રક્રિયાનો પ્રશંસા કરવામાં આવે છે જે સમયસર અપફ્રન્ટ ઇન્વેસ્ટમેન્ટના મૂલ્યની સારી રીતે મૂલ્યાંકન કરે છે.
સંગ્રહિત કાર્યવાહીનો ઉપયોગ કરવાના લાભો
વિકાસકર્તાએ શા માટે સંગ્રહિત કાર્યવાહીનો ઉપયોગ કરવો જોઈએ?
અહીં આ તકનીકીના મુખ્ય લાભો છે:
- પ્રીકમ્પાઇલ કરેલ એક્ઝેક્યુશન: એકવાર SQL સર્વર દરેક સંગ્રહિત પ્રક્રિયાને એકીકૃત કરે છે અને પછી એક્ઝેક્યુશન પ્લાનને ફરીથી જુએ છે. સંગ્રહિત કાર્યવાહી વારંવાર કહેવામાં આવે છે ત્યારે તેનાથી વિપુલ પ્રભાવમાં વધારો થાય છે.
- ઘટાડેલા ક્લાઇન્ટ / સર્વર ટ્રાફિક: જો નેટવર્ક બેન્ડવિડ્થ એ તમારા પર્યાવરણમાં ચિંતાની બાબત છે, તો તમે જાણવાથી ખુશ થશો કે સંગ્રહિત કાર્યવાહી વાયર પર પ્રસારિત એક જ લાઇનમાં લાંબા એસક્યુએલ ક્વેરીઝને ઘટાડી શકે છે.
- કોડ અને પ્રોગ્રામિંગ અમૂર્તના કાર્યક્ષમ પુનઃઉપયોગ: સંગ્રહિત કાર્યવાહીનો ઉપયોગ બહુવિધ વપરાશકર્તાઓ અને ક્લાયન્ટ પ્રોગ્રામ્સ દ્વારા કરી શકાય છે. જો તમે તેમને આયોજિત રીતે ઉપયોગ કરો છો, તો તમને વિકાસ ચક્ર ઓછો સમય લેશે.
- ઉન્નત સુરક્ષા નિયંત્રણો: તમે કોષ્ટક પરવાનગીઓને સ્વતંત્ર રીતે સંગ્રહિત કાર્યપદ્ધતિને ચલાવવા માટે વપરાશકર્તાઓને પરવાનગી આપી શકો છો
સંગ્રહીત પ્રક્રિયાનો ઉપયોગકર્તા-નિર્ધારિત વિધેયો સમાન છે, પરંતુ સૂક્ષ્મ તફાવતો છે.
માળખું
સંગ્રહિત કાર્યવાહી અન્ય પ્રોગ્રામિંગ ભાષાઓમાં જોવા મળતી રચનાઓ જેવી જ છે.
તેઓ ઇનપુટ પરિમાણોના સ્વરૂપમાં ડેટાને સ્વીકારે છે જે એક્ઝેક્યુશન સમય પર નિર્દિષ્ટ કરે છે. આ ઈનપુટ પરિમાણો (જો અમલમાં મુકવામાં આવે તો) અમુક પરિણામોના અમલીકરણમાં ઉપયોગમાં લેવામાં આવે છે. રેકોર્ડ્સ, આઉટપુટ પરિમાણો અને રીટર્ન કોડના ઉપયોગ દ્વારા આ પરિણામ કોલિંગ પર્યાવરણમાં પરત કરવામાં આવે છે.
તે એક મોં જેવું સંભળાય છે, પરંતુ તમને મળશે કે સંગ્રહિત કાર્યવાહી વાસ્તવમાં ખૂબ સરળ છે.
ઉદાહરણ
ચાલો આ પૃષ્ઠના તળિયે બતાવેલ ઈન્વેન્ટરી નામના કોષ્ટકથી સંબંધિત વ્યવહારુ ઉદાહરણ પર નજર કરીએ. આ માહિતી વાસ્તવિક સમયમાં અપડેટ કરવામાં આવે છે, અને વેરહાઉસ મેનેજર સતત તેમના વેરહાઉસમાં સંગ્રહિત ઉત્પાદનોના સ્તરની ચકાસણી કરી રહ્યાં છે અને બદલી માટે ઉપલબ્ધ છે. ભૂતકાળમાં, દરેક મેનેજર નીચેના જેવી જ પ્રશ્નો પૂછશે:
ઉત્પાદન, જથ્થો પસંદ કરો
ઇન્વેન્ટરીમાંથી
WHERE વેરહાઉસ = 'FL'
તેના પરિણામે SQL સર્વર પર બિનકાર્યક્ષમ કામગીરી થઈ. દરેક સમયે વેરહાઉસ મેનેજર ક્વેરીને એક્ઝિક્યુટ કરે છે, ડેટાબેસ સર્વરને ક્વેરીને ફરીથી કમ્પાઇલ કરવા અને તેને શરૂઆતથી ચલાવવા માટે ફરજ પાડવામાં આવી હતી. તે પણ SQL ની જાણકારી ધરાવે છે અને કોષ્ટક માહિતી ઍક્સેસ કરવા માટે યોગ્ય પરવાનગીઓ વેરહાઉસ મેનેજર જરૂરી.
તેના બદલે, પ્રક્રિયાને સંગ્રહિત કાર્યપદ્ધતિના ઉપયોગથી સરળ બનાવી શકાય છે. અહીં sp_GetInventory નામની પ્રક્રિયા માટેનો કોડ છે જે આપેલ વેરહાઉસ માટે ઈન્વેન્ટરી સ્તરો મેળવે છે.
પ્રક્રિયા બનાવો sp_GetInventory
@ સ્થાન સ્થાન (10)
AS
ઉત્પાદન, જથ્થો પસંદ કરો
ઇન્વેન્ટરીમાંથી
વેરહાઉસ = @ સ્થાન
ફ્લોરિડા વેરહાઉસ મેનેજર આદેશને અદા કરીને ઈન્વેન્ટરી સ્તરને ઍક્સેસ કરી શકે છે:
EX_GetInventory 'FL' નો ઉપયોગ કરો
ન્યૂ યોર્ક વેરહાઉસ મેનેજર તે સંગ્રહની પદ્ધતિનો ઉપયોગ તે ક્ષેત્રની ઇન્વેન્ટરીને ઍક્સેસ કરવા માટે કરી શકે છે:
EX_GetInventory 'NY' નો ઉપયોગ કરો
મંજૂર છે, આ એક સરળ ઉદાહરણ છે, પરંતુ અમૂર્તના ફાયદા અહીં જોઈ શકાય છે. વેરહાઉસ મેનેજરને એસક્યુએલ અથવા પ્રક્રિયાની આંતરિક કામગીરી સમજવાની જરૂર નથી. પ્રભાવ પરિપ્રેક્ષ્યમાં, સંગ્રહિત કાર્ય અજાયબીઓની રચના કરે છે. SQL સર્વર એક એક્ઝેક્યુશન પ્લાન એકવાર બનાવે છે અને તે એક્ઝેક્યુશન સમય પર યોગ્ય પરિમાણોમાં પ્લગ કરીને પુનઃઉત્પાદન કરે છે.
હવે તમે સંગ્રહિત કાર્યવાહીના લાભો શીખ્યા છે, ત્યાંથી નીકળો અને તેનો ઉપયોગ કરો.
થોડાક ઉદાહરણોનો પ્રયાસ કરો અને પ્રાપ્ત કરેલા પ્રભાવ ઉન્નત્તિકરણોનું માપ કાઢો-તમે આશ્ચર્ય પામશો!
ઇન્વેન્ટરી કોષ્ટક
ID | ઉત્પાદન | વેરહાઉસ | જથ્થો |
142 | લીલા વટાણા | NY | 100 |
214 | વટાણા | FL | 200 |
825 | કોર્ન | NY | 140 |
512 | લિમા બીન | NY | 180 |
491 | ટોમેટોઝ | FL | 80 |
379 | તરબૂચ | FL | 85 |