जब आप तैयार कथन (यानी पूर्व-संकलित कथन) का उपयोग करते हैं, जैसे ही डीबी को यह कथन मिलता है, यह इसे संकलित करता है और इसे कैश करता है ताकि यह उसी कथन की लगातार कॉल के लिए अंतिम संकलित कथन का उपयोग कर सके। तो यह लगातार कॉल के लिए पूर्व-संकलित हो जाता है।
आप आम तौर पर बाइंड वेरिएबल्स के साथ तैयार स्टेटमेंट का उपयोग करते हैं जहां आप रन टाइम पर वेरिएबल प्रदान करते हैं। अब तैयार बयानों के लगातार निष्पादन के लिए क्या होता है, आप वेरिएबल प्रदान कर सकते हैं जो पिछली कॉल से अलग हैं। डीबी के दृष्टिकोण से, इसे हर बार स्टेटमेंट को संकलित करने की आवश्यकता नहीं है, बस रम समय पर बाइंड वेरिएबल्स को सम्मिलित करेगा। तो तेज़ हो जाता है।
तैयार किए गए बयानों के अन्य लाभ हैं :-
1)एसक्यूएल-इंजेक्शन हमले के खिलाफ सुरक्षा
2) समान कथनों की लगातार कॉल के लिए तेज़
यह कैसे काम करता है :-
-
प्रीकंपिलेशन डेटाबेस द्वारा किया जाता है। कुछ सरल डेटाबेस बयानों को बिल्कुल भी पूर्व-संकलित नहीं करते हैं। अन्य लोग इसे प्रिपेयरस्टेटमेंट कॉल पर प्रीकंपाइल कर सकते हैं, और फिर भी अन्य इसे तब कर सकते हैं जब स्टेटमेंट को पहले स्टेटमेंट पर निष्पादित किया जाता है, स्टेटमेंट को संकलित करते समय मापदंडों के मूल्यों को ध्यान में रखते हुए (इसके लिए एक योजना बनाते हुए)।
-
डेटाबेस जो प्रीकंपाइल स्टेटमेंट करते हैं, आमतौर पर उन्हें कैश करते हैं, इसलिए सभी संभावनाओं में ps1 को फिर से संकलित नहीं किया जाएगा। कुछ JDBC ड्राइवर (जैसे। Oracle) यहां तक कि कैशे तैयार स्टेटमेंट भी हैं, इसलिए जब ps.close() को कॉल किया गया था, तो उन्होंने वास्तव में इसे बंद नहीं किया था।
-
डेटाबेस आमतौर पर स्टेटमेंट को कैश करते हैं जब तक कि कुछ उन्हें कैश से बेदखल न कर दे।
विवरण के लिए यह wiki देखें। लिंक