में हाइबरनेट @Query विधि का समांतर निष्पादन मेरे पास एक डैशबोर्ड दृश्य है, जिसके लिए पूरे डेटाबेस में तालिकाओं से डेटा के छोटे सेट की आवश्यकता होती है। मैंने डेटाबेस क्वेरीज़ को अनुकूलित किया (उदा। उप-प्रश्न हटा दिए गए)। अब ~ 20 प्रश्न हैं जो एक के बाद एक निष्पादित किए जाते हैं, और जो डेटाबेस से अलग-अलग डेटा सेट ला रहे हैं। अधिकांश एचक्यूएल प्रश्नों में GROUP BY
और JOIN
क्लॉज शामिल हैं। एक वसंत आरईएसटी इंटरफेस के साथ, परिणाम सामने के अंत में वापस आ गया है।स्प्रिंग डेटा क्वेरी निष्पादन अनुकूलन: JpaRepository
मैं कस्टम प्रश्नों के निष्पादन को कैसे अनुकूलित करूं? मेरा प्रारंभिक विचार समानांतर में डेटाबेस प्रश्नों को चलाने के लिए था। लेकिन मैं इसे कैसे प्राप्त करूं? कुछ शोध करने के बाद मुझे एनोटेशन @Async
मिला जो समानांतर में विधियों को चलाने में सक्षम बनाता है। लेकिन क्या यह हाइबरनेट विधियों के साथ काम करता है? क्या JpaRepository में @Query
के साथ एनोटेटेड प्रत्येक विधि के लिए हमेशा एक नया डेटाबेस सत्र बनाया गया है? क्या डेटाबेस क्वेरी चलाना पूरे निष्पादन समय पर प्रभाव डालता है?
समानांतर में डेटाबेस कॉल चलाने का एक और तरीका, डैशबोर्ड कॉल को कई एकल अजाक्स कॉल में विभाजित कर रहा है (प्रत्येक चिंता को अपना स्वयं का अजाक्स कॉल मिलता है)। मैं ऐसा नहीं करना चाहता था, क्योंकि हर बार डैशबोर्ड खोला जाता है (या उदा। तिथि सीमा बदल जाती है), नया डेटा लाने के लिए एक और 20 अजाक्स कॉल किए जाते हैं। और वही प्रश्न बनी हुई है: क्या समानांतर में SQL क्वेरी चलाना डेटाबेस के निष्पादन समय पर प्रभाव डालता है?
मैंने वर्तमान में डेटाबेस में अतिरिक्त इंडेक्स नहीं जोड़े हैं। यह अगली बात होगी, मैं निश्चित रूप से करूँगा। हालांकि, मुझे समांतर में प्रश्नों को चलाने और वसंत के साथ प्रोग्रामेटिक रूप से कैसे प्राप्त किया जाए, इसके प्रदर्शन प्रभावों पर रूचि है।
मेरे परियोजना शुरू में jHipster (स्प्रिंग बूट, MariaDB, AngularJS आदि) द्वारा उत्पन्न की गई
धन्यवाद। दुर्भाग्य से मैं आपको पूर्ण बक्षीस देने में बहुत देर हो चुकी थी। –