मैं निम्नलिखित कोड का उपयोग कर रहाजावा जेडीबीसी setFetchSize को अनदेखा करता है?
st = connection.createStatement(
ResultSet.CONCUR_READ_ONLY,
ResultSet.FETCH_FORWARD,
ResultSet.TYPE_FORWARD_ONLY
);
st.setFetchSize(1000);
System.out.println("start query ");
rs = st.executeQuery(queryString);
System.out.println("done query");
क्वेरी (800k) बहुत सी पंक्तियाँ लौट सकते हैं और यह मुद्रण के बीच एक बड़ा समय (~ 2m) ले "क्वेरी शुरू" और "हो गया क्वेरी"। जब मैं अपनी क्वेरी में मैन्युअल रूप से "सीमा 10000" डालता हूं तो "प्रारंभ" और "पूर्ण" के बीच कोई समय नहीं होता है। परिणामों को संसाधित करने में समय लगता है, इसलिए मुझे लगता है कि यह कुल मिलाकर तेज़ है यदि यह डेटाबेस से 1k पंक्तियां प्राप्त करता है, उन प्रक्रियाओं को संसाधित करता है और जब यह पंक्तियों से बाहर हो रहा है तो यह पृष्ठभूमि में नए हो सकता है।
परिणामसेट.कॉनकुर_READ_ONLY आदि जहां मेरा आखिरी अनुमान है; क्या मैं कुछ भूल रहा हूँ?
setFetchSize वास्तव में PostgreSQL ड्राइवर के साथ अच्छी तरह से काम करता है में पैरामीटर प्रदान करने का प्रयास करें, यह सिर्फ एक बहुत करता है आप इससे अपेक्षा करते हैं कि अलग-अलग चीज। मेरा जवाब देखें – Henning
यह भी देखें https://stackoverflow.com/a/47517489/32453 – rogerdpack