तैयार कथन इस प्रकार हैं कि आप दोहराए जाने वाले SQL कमांड को निष्पादित कर सकते हैं जो उदाहरण के लिए केवल पैरामीटर मानों में भिन्न हो सकते हैं।
वे एक तैयार बयान के रूप में "लंबे समय तक" जीने के लिए नहीं हैं (वे लेनदेन से बुलाए जाने पर करते हैं) एक सक्रिय डेटाबेस कनेक्शन आरक्षित कर सकते हैं ("लंबे" का अर्थ है जब उनका उपयोग नहीं किया जाता है; कई बार तैयार किए गए कथन को दोहराए जाने के लिए बिल्कुल ठीक है कई बार भले ही इसमें लंबा समय लगे)। एक कनेक्शन एक महंगा संसाधन है और इसे केवल तब तक रखा जाना चाहिए जब तक आवश्यक हो। केवल तैयार बयानों का एक समूह बनाकर और उन्हें बंद न करके, आप सक्रिय/अनुमत कनेक्शन से बाहर हो सकते हैं और फिर डीबी सर्वर पर आगे संचार को अवरुद्ध कर सकते हैं।
यदि आप वही insert
निष्पादित करना चाहते हैं तो तैयार कथन का उपयोग करें , update
या select
एक (HTTP) अनुरोध में कई बार विभिन्न मापदंडों के साथ बयान। (HTTP) अनुरोधों को जीवित रखने के लिए तैयार कथन का उपयोग न करें।
कुछ ड्राइवर कार्यान्वयन और डेटाबेस सर्वरों में तैयार किए गए बयानों में डीबी सर्वर पर आवंटित संसाधन भी शामिल हो सकते हैं (गो एप्लिकेशन में नहीं)। उदाहरण के लिए एक तैयार विवरण डीबी सर्वर पर पूर्व-संकलित किया जा सकता है और सर्वर क्वेरी निष्पादन योजना तैयार कर सकता है, इसके लिए स्मृति जैसे कुछ संसाधन आवंटित कर सकता है। तैयार विवरण बंद होने तक इन्हें स्थायी रूप से आरक्षित किया जा सकता है।
कुल मिलाकर, आप जो वर्णन करते हैं वह एक कार्यशील मॉडल है, और यदि आपके पास तैयार कथनों की संख्या कम है जो बाद के कई अनुरोधों में आवश्यक/निष्पादित हैं, तो उनका मतलब कम प्रतिक्रिया समय हो सकता है। लेकिन इसका मतलब यह भी है कि दूसरी ओर, लंबे समय में, उनका परिणाम यह हो सकता है कि आपके सभी तैयार किए गए बयान पूल के सभी कनेक्शनों पर तैयार किए जाएंगे। तय करें कि आपके मामले में यह स्वीकार्य है या नहीं।
सामान्य तौर पर इसे टाला जाना चाहिए (और HTTP अनुरोध के अंत से पहले तैयार बयान बंद कर दिया जाना चाहिए), लेकिन अगर आपके पास उनमें से कुछ ही हैं और आपको एक दूसरे के बाद कई अनुरोधों में उनकी आवश्यकता है, तो आप उन्हें अनुरोध के दायरे से बाहर ले जा सकते हैं ।