हेलो दोस्तों आज के इस ब्लॉग पोस्ट(Stored Procedure In MySql In Hindi) में हम आपको यह बताने वाले है कि Stored PROCEDURE क्या होता है और उसके advantages और disadvantages क्या क्या होते है |
नीचे आप देख सकते है कि एक select query का उपयोग करके हम कुछ रिकॉर्ड को fetch कर रहे है |Stored Procedure In MySql In Hindi|
SELECT
customerName,
city,
state,
postalCode,
country
FROM
customers
ORDER BY customerName;
और उसके नीचे आप उसका output देख सकते है/Stored Procedure In MySql In Hindi:
Generally SQL query को MYSQL SERVER पर चलाने के लिए या तो आप MYSQL workbench का उपयोग करते है|
या फिर MYSQL shell का उपयोग करते है, तब उससे आपको एक रिजल्ट set प्राप्त होता है |
अगर आप इसी क्वेरी को डेटाबेस में सेव करके रखना चाहते है और इसे बाद में जरुरत के समय चलाना चाहते है|
तो ऐसे केस में यह काम करने के लिए हमें Stored PROCEDURE की जरुरत पड़ती है |
नीचे दिए गए create PROCEDURE statement से आप एक Stored PROCEDURE क्रिएट कर सकते है जो कि ऊपर दी query को प्रोसेस करेगी|
DELIMITER $$
CREATE PROCEDURE GetCustomers()
BEGIN
SELECT
customerName,
city,
state,
postalCode,
country
FROM
customers
ORDER BY customerName;
END$$
DELIMITER ;
तो अगर हम MYSQL Stored PROCEDURE की डेफिनिशन पर जाये तो हम यह कह सकते है कि Stored PROCEDURE जो है|
वो predefined SQL statements होते है जो कि MYSQL SERVER में स्टोर रहते है |
इस example में हमने Getcustomer नाम का Stored PROCEDURE क्रिएट किया है |
एक बार जब इस Stored PROCEDURE को सेव कर लेते है तो इसके बाद इसे CALL अथवा invoke करने के लिए आप CALL statement का उपयोग कर सकते है |
और यह प्रोसीजर वही same result देगा जो ऊपर हमें क्वेरी से मिला था|
CALL GetCustomers();
जब आप पहली बार किसी प्रोसीजर को invoke अथवा CALL करते है तो सबसे पहले MYSQL PROCEDURE नाम को डेटाबेस catalog में देखता है |
और इसके बाद code को compile करके memory area में रखता है|
जिसे हम cache memory कहते है और फिर PROCEDURE को एक्सेक्यूटे करता है |
और अगर आप same PROCEDURE को same session के द्वारा दुबारा execute करते है|
तो फिर MYSQL उसे cache memory से ही execute करता है बिना recompile किये|
एक Stored PROCEDURE जो है वो parameter रखता है|
इसलिए आप Stored PROCEDURE में वैल्यू को पास कर सकते है और वापिस रिजल्ट प्राप्त कर सकते है |
जैसे एक्साम्प्ले के लिए आप एक Stored PROCEDURE create कर सकते है जो कि country और city के बेस पर customer नाम return करता है |
इस केस में country और city जो है वो परमेतर है इस Stored PROCEDURE के|
एक Stored PROCEDURE जो है वो control फ्लो स्टेटमेंट रख सकता है|
जैसे कि IF , CASE , एंड LOOP , जो कि एक कोड को procedural way में implement करने के लिए allow करते है |
एक Stored PROCEDURE जो है वो दसूरे Stored PROCEDURE और Stored function को कॉल करता है|
जिससे कि हम कोड को modulize कर सकते है |
MYSQL Stored PROCEDURE के advantage निम्नलिखित है :
Reduce network traffic :
Stored PROCEDURE जो है वो नेटवर्क ट्रैफिक को बहुत कम कर देते है |
क्योकि यह एप्लीकेशन और MYSQL सर्वर के बीच में होने वाले नेटवर्क ट्रैफिक को बहुत reduce कर देते है |
क्योकि अब हमें एप्लीकेशन के द्वारा MYSQL SERVER तक बहुत सारे lengthy SQL स्टेटमेंट भेजने की जरुरत नहीं पड़ती है |
हमें सिर्फ PROCEDURE का नाम और पैरामीटर पास करना होता है और फिर फाइनली हमें रिजल्ट प्राप्त हो जाता है |
Stored PROCEDURE डेटाबेस में ही execute होता है |
Centralize business logic in the database :
आप ऐसे लॉजिक जो बार बार कई एप्लीकेशन के द्वारा use किये जाते है|
उन्हें आप एक Stored PROCEDURE बना कर स्टोर कर सकते हो|
और फिर इसका उपयोग बहुत सारे application में कर सकते है |
इससे न तो same बिज़नेस लॉजिक की duplicacy होती है और डेटाबेस भी consistent रहता है |
Make database more secure :
चूकि जरुरी नहीं कि Stored PROCEDURE हर एक application के द्वारा उपयोग किया जाये तो ऐसे केस में जो भी…
…एप्लीकेशन कुछ specific Stored PROCEDURE को access करती है उन्हें डेटाबेस एक्सेस करने की privilege दे सकता है |
और यह process डेटाबेस को और भी strong बनाती है |
MYSQL Stored PROCEDURE के disadvantages निम्नलिखित है:
ऊपर दी हुई इतनी advantages के बावजूद स्टोर्ड प्रोसीजर की कुछ disadvantages भी होती है |
Resource usages :
अगर आप बहुत सारे Stored PROCEDURE का उपयोग करते है तो फिर प्रत्येक connection की मेमोरी usage क्रमशः बढ़ेगी|
अगर आप Stored PROCEDURE में ज्यादा से ज्यादा लॉजिक का उपयोग करेंगे तो फिर CPU यूसेज भी बढ़ेगा|
और जैसा कि हम जानते है कि MYSQL जो है वो logical operation के लिए अच्छी तरह से डिज़ाइन नहीं है |
Troubleshooting :
MYSQL Stored PROCEDURE को debug करना थोड़ा difficult है |
वास्तव में MYSQL ऐसे कोई debug facility प्रोवाइड ही नहीं करता है जिससे हम Stored PROCEDURE को debug कर सके|
जैसे कि और दूसरे database enterprise में होता है example के लिए oracle और SQL SERVER |
Maintenances :
Stored PROCEDURE को develop और maintain करने के लिए एक specialize skill set की जरुरत होती है|
जो हर developer के पास नहीं होती है | और यह issue दोनों के साथ application डेवलपमेंट और application मेंटेनेंस दोनों के साथ प्रॉब्लम खड़ी कर सकता है |
You can also go through below blog links below related to DBMS:
MS Access Database In Hindi…
What Is Normalization In Dbms In Hindi…
What is referential integrity in DBMS in Hindi…
Trigger In MySql In Hindi…
MYSQL Function In Hindi…
Stored Procedure In MySql In Hindi…
MYSQL Numeric Data Type In Hindi…
String Data Type In Mysql In Hindi…
Difference between char and varchar in Hindi…
MYSQL Introduction In Hindi…
इस ब्लॉग(Stored Procedure In MySql In Hindi) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते support@a5theory.comपर ईमेल लिख सकते है|
आशा करता हूँ, कि आपने इस पोस्ट(Stored Procedure In MySql In Hindi) को खूब एन्जॉय किया होगा|
आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|Stored Procedure In MySql In Hindi|
आपका समय शुभ हो|