मैं एक टेबल से कुछ मूल्य लाने के लिए स्प्रिंग नामांकित पैरामीटर जेडीबीसी टेम्पलेट का उपयोग कर रहा हूं। किसी कारण से, SQL प्रबंधन स्टूडियो पर एक ही क्वेरी चलाने के विरोध में क्वेरी मेरे जावा ऐप में बहुत धीमी गति से चलती है। मैंने प्रोफाइलर में भी ध्यान दिया, तैयार बयानों का पुन: उपयोग नहीं किया जाता है। यदि मैं अपने जावा एप्लिकेशन में कई बार एक ही क्वेरी चलाता हूं, तो मुझे विभिन्न तैयार कथन निष्पादित किए जाते हैं। तो, सुनिश्चित नहीं है कि बयानों का पुन: उपयोग क्यों नहीं किया जा रहा है। प्रदर्शन धीमा है क्योंकि मैं अपनी क्वेरी में एक आईएन क्लॉज का उपयोग कर रहा हूं?स्प्रिंग नामांकित पैरामीटर जेडीबीसीटीप्लेट तैयार राज्यों का पुन: उपयोग
यहाँ मेरी नमूना जावा कोड
StringBuilder vQuery = new StringBuilder();
vQuery.append(" SELECT SUM(Qty) FROM vDemand");
vQuery.append(" WHERE ProductID = :ProductID");
vQuery.append(" AND [Date] >= :StartDate AND [Date] <= :EndDate");
vQuery.append(" AND CustomerID IN (:CustomerID)");
MapSqlParameterSource vNamedParameters = new MapSqlParameterSource();
vNamedParameters.addValue("ProductID", aProductID);
vNamedParameters.addValue("CustomerID", aCustomerlIDs);
vNamedParameters.addValue("StartDate", aDate, Types.TIMESTAMP);
vNamedParameters.addValue("EndDate", aDate, Types.TIMESTAMP);
int vTotalQuantity = this.getNamedParameterJdbcTemplate().queryForInt(vQuery.toString(), vNamedParameters);
return vTotalQuantity;
धन्यवाद। अजीब चीज़ जो मैं देख रहा हूं वह एक प्रश्न के लिए भी है, रन टाइम एसक्यूएल सर्वर प्रबंधन स्टूडियो में रन टाइम की तुलना में लगभग 50 गुना अधिक है। मैं नामांकित पैरामीटर से छुटकारा पाने की कोशिश करूंगा और देख सकता हूं कि एक सीधा एसक्यूएल इस मुद्दे को हल करता है या नहीं। एक बार फिर धन्यवाद। – user320587
मुझे लगता है कि यह एक अलग समस्या है, अपने जेडीबीसी ड्राइवर की कॉन्फ़िगरेशन की जांच करें। ड्राइवर के साथ एक नई परियोजना बनाएं और एक मुख्य विधि जो केवल क्वेरी निष्पादित करती है, सादा वर्ग। 50 गुना धीमा है। – Luciano