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

PostgreSQL अस्थायी टेबल

कृपया ध्यान दें कि, पोस्टग्रेज़ में, अस्थायी तालिकाओं के लिए डिफ़ॉल्ट व्यवहार यह है कि वे स्वचालित रूप से गिराए नहीं जाते हैं, और डेटा प्रतिबद्ध होने पर कायम रहता है। देखें ON COMMIT

हालाँकि, अस्थायी तालिका डेटाबेस सत्र के अंत में छोड़ दी जाती है:

<ब्लॉकक्वॉट>

अस्थायी तालिकाओं को स्वचालित रूप से सत्र के अंत में, या वैकल्पिक रूप से वर्तमान लेनदेन के अंत में छोड़ दिया जाता है।

आपको कई बातों पर ध्यान देना होगा:

  • यदि आप स्पष्ट रूप से DROP करना चाहते हैं लेन-देन के अंत में एक अस्थायी तालिका, इसे CREATE TEMPORARY TABLE ... ON COMMIT DROP के साथ बनाएं वाक्य रचना।
  • कनेक्शन पूलिंग की उपस्थिति में , एक डेटाबेस सत्र में कई क्लाइंट सत्र हो सकते हैं; CREATE . में टकराव से बचने के लिए , आपको अपनी अस्थायी तालिकाओं को छोड़ देना चाहिए -- या तो पूल से कनेक्शन वापस करने से पहले (उदाहरण के लिए लेन-देन के अंदर सब कुछ करके और ON COMMIT DROP का उपयोग करके) निर्माण सिंटैक्स), या आवश्यकता के आधार पर (किसी भी CREATE TEMPORARY TABLE से पहले) संबंधित DROP TABLE IF EXISTS . के साथ स्टेटमेंट , जिसे बाहर के लेन-देन में भी काम करने का फायदा है उदा। यदि कनेक्शन का उपयोग ऑटो-कमिट मोड में किया जाता है।)
  • जबकि अस्थायी तालिका उपयोग में है, डिस्क पर ओवरफ्लो होने से पहले इसका कितना हिस्सा मेमोरी में फिट होगा? देखें temp_buffers postgresql.conf . में विकल्प
  • टेम्प टेबल के साथ अक्सर काम करते समय मुझे और क्या चिंता करनी चाहिए? कैटलॉग से किसी भी मृत टुपल्स को साफ करने के लिए, अस्थायी तालिकाओं को छोड़ने के बाद एक वैक्यूम की सिफारिश की जाती है। डिफ़ॉल्ट सेटिंग्स (auto_vacuum) का उपयोग करते समय पोस्टग्रेज आपके लिए हर 3 मिनट में स्वचालित रूप से वैक्यूम हो जाएगा )।

साथ ही, आपके प्रश्न से असंबंधित (लेकिन संभवतः आपकी परियोजना से संबंधित):ध्यान रखें कि, यदि आपको के बाद एक अस्थायी तालिका के विरुद्ध क्वेरी चलानी है आपने इसे भर दिया है, तो उपयुक्त सूचकांक बनाना और ANALYZE जारी करना एक अच्छा विचार है विचाराधीन अस्थायी तालिका पर बाद आपने इसमें सम्मिलित करना समाप्त कर लिया है। डिफ़ॉल्ट रूप से, लागत आधारित अनुकूलक यह मान लेगा कि एक नई बनाई गई अस्थायी तालिका में ~1000 पंक्तियाँ हैं और इसके परिणामस्वरूप खराब प्रदर्शन हो सकता है यदि अस्थायी तालिका में वास्तव में लाखों पंक्तियाँ हों।



  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 वाइल्डकार्ड LIKE

  2. लोअर लाइक बनाम आईलाइक

  3. Psql का उपयोग करके मैं डेटाबेस में स्थापित एक्सटेंशन को कैसे सूचीबद्ध करूं?

  4. टेक्स्ट प्रतिनिधित्व में हेक्स को दशमलव संख्या में कनवर्ट करें

  5. दिल की धड़कन के साथ PostgreSQL के लिए उच्च उपलब्धता को ट्रैक करना