PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

गो sql - तैयार स्टेटमेंट स्कोप

तैयार कथन इस प्रकार हैं कि आप दोहराए जाने वाले SQL कमांड को निष्पादित कर सकते हैं जो उदाहरण के लिए केवल पैरामीटर मानों में भिन्न हो सकते हैं।

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

यदि आप वही insert निष्पादित करना चाहते हैं तो तैयार कथन का उपयोग करें , update या select एक (HTTP) अनुरोध में कई बार विभिन्न मापदंडों के साथ बयान। (HTTP) अनुरोधों को जीवित रखने के लिए तैयार कथन का उपयोग न करें।

कुछ ड्राइवर कार्यान्वयन और डेटाबेस सर्वरों में तैयार किए गए बयानों में डीबी सर्वर पर आवंटित संसाधन भी शामिल हो सकते हैं (गो एप्लिकेशन में नहीं)। उदाहरण के लिए एक तैयार विवरण डीबी सर्वर पर पूर्व-संकलित किया जा सकता है और सर्वर क्वेरी निष्पादन योजना तैयार कर सकता है, इसके लिए स्मृति जैसे कुछ संसाधन आवंटित कर सकता है। तैयार विवरण बंद होने तक इन्हें स्थायी रूप से आरक्षित किया जा सकता है।

तैयार विवरण गो में। इसमें उल्लेख है कि यदि लेनदेन से तैयार बयान नहीं बनाए जाते हैं, तो वे कनेक्शन को वापस कनेक्शन पूल में छोड़ देते हैं, लेकिन जब आवश्यक हो, तो वे उसी का पुन:उपयोग करने का प्रयास करते हैं जिस पर वे तैयार किए गए थे (क्योंकि यदि डीबी सर्वर सहायक / सक्रिय भूमिका निभाता है तैयार बयान में, यह सर्वर साइड पर कनेक्शन के लिए बाध्य है)। अगर नहीं, तो वे फिर से तैयार करेंगे उन्हें एक नए कनेक्शन पर (अवांछनीय प्रदर्शन ओवरहेड के कारण)।

कुल मिलाकर, आप जो वर्णन करते हैं वह एक कार्यशील मॉडल है, और यदि आपके पास तैयार कथनों की संख्या कम है जो बाद के कई अनुरोधों में आवश्यक/निष्पादित हैं, तो उनका मतलब कम प्रतिक्रिया समय हो सकता है। लेकिन इसका मतलब यह भी है कि दूसरी ओर, लंबे समय में, उनका परिणाम यह हो सकता है कि आपके सभी तैयार किए गए बयान पूल के सभी कनेक्शनों पर तैयार किए जाएंगे। तय करें कि आपके मामले में यह स्वीकार्य है या नहीं।

सामान्य तौर पर इसे टाला जाना चाहिए (और HTTP अनुरोध के अंत से पहले तैयार बयान बंद कर दिया जाना चाहिए), लेकिन अगर आपके पास उनमें से कुछ ही हैं और आपको एक दूसरे के बाद कई अनुरोधों में उनकी आवश्यकता है, तो आप उन्हें अनुरोध के दायरे से बाहर ले जा सकते हैं ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अतिरिक्त कॉलम के साथ चयन से PostgreSQL सम्मिलित करें

  2. PostgreSQL विंडोज़ में नाम संसाधित करता है

  3. समूहन/एकत्रीकरण के दौरान सरणी मानों को संयोजित/मर्ज करें

  4. JSONB कॉलम में किसी JSON ऑब्जेक्ट को नेस्टेड सरणी में कैसे धकेलें?

  5. PostgreSQL में बड़ी तालिका में डिलीट क्वेरी को निष्पादित करने का सबसे तेज़ तरीका