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

जेडीबीसी बैच प्रदर्शन

AFAIK fe/be में सर्वर-साइड बैचिंग नहीं है। प्रोटोकॉल , इसलिए PgJDBC इसका उपयोग नहीं कर सकता। . अपडेट करें :अच्छा, मैं गलत था। PgJDBC (9.3 तक सटीक) करता है सर्वर को प्रश्नों के बैच भेजें यदि उसे जेनरेट की गई कुंजियों को लाने की आवश्यकता नहीं है . यह प्रत्येक व्यक्तिगत क्वेरी के बाद सर्वर के साथ समन्वयित किए बिना भेजें बफर में प्रश्नों का एक समूह कतारबद्ध करता है।

देखें:

यहां तक ​​कि जब जेनरेट की गई कुंजियों से विस्तारित क्वेरी का अनुरोध किया जाता है प्रोटोकॉल यह सुनिश्चित करने के लिए उपयोग किया जाता है कि क्वेरी टेक्स्ट को हर बार भेजने की आवश्यकता नहीं है, केवल पैरामीटर।

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

यदि ऑटोोकॉमिट चालू है, तो प्रदर्शन बिल्कुल दयनीय होगा क्योंकि प्रत्येक कथन एक प्रतिबद्धता को ट्रिगर करता है। यहां तक ​​​​कि ऑटोकॉमिट बंद होने के बावजूद बहुत सारे छोटे बयान विशेष रूप से तेज़ नहीं होंगे, भले ही आप राउंड-ट्रिप देरी को खत्म कर सकें।

बहुत सारे आसान UPDATE . के लिए एक बेहतर समाधान यह हो सकता है:

  • COPY नया डेटा TEMPORARY . में या UNLOGGED मेज़; और
  • UPDATE ... FROM का उपयोग करें करने के लिए UPDATE एक JOIN के साथ कॉपी की गई तालिका के विरुद्ध

कॉपी के लिए, देखें पीजीजेडीबीसी दस्तावेज़ और COPY सर्वर डॉक्स में दस्तावेज़ीकरण

आप अक्सर पाएंगे कि चीजों में बदलाव करना संभव है, ताकि आपके ऐप को उन सभी लोगों को UPDATE भेजने की आवश्यकता न पड़े। बिल्कुल।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीजी एडमिन 4 - पोस्टग्रेएसक्यूएल 13 सर्वर से कनेक्ट करने का प्रयास करते समय उपयोगकर्ता को पोस्टग्रेज करने के लिए पासवर्ड

  2. PostgreSQL को तैनात करने के लिए Kubernetes का उपयोग करना

  3. त्रुटि:एक के बाद एक डिफ़ॉल्ट मान के साथ इनपुट पैरामीटर भी पोस्टग्रेज़ में डिफ़ॉल्ट होना चाहिए

  4. UTF8 एन्कोडिंग वाले वर्ण का WIN1252 में कोई समकक्ष नहीं है

  5. तिथियों की एक श्रृंखला के लिए निकटतम रिकॉर्ड