मेरे पास एक ओपन सोर्स जावा एप्लिकेशन है जो दृढ़ता के लिए हाइबरनेट और एचएसक्यूएलडीबी का उपयोग करता है। मेरे सभी खिलौनों के परीक्षणों में, चीजें तेजी से चलती हैं और सबकुछ अच्छा होता है। मेरे पास एक ग्राहक है जो लगातार कई महीनों तक सॉफ्टवेयर चला रहा है और उस समय उनके डेटाबेस में काफी वृद्धि हुई है, और प्रदर्शन धीरे-धीरे गिरा दिया गया है। अंत में यह मेरे लिए हुआ कि डेटाबेस समस्या हो सकती है। जहां तक मैं लॉग स्टेटमेंट से कह सकता हूं, सर्वर में सभी गणना जल्दी होती है, इसलिए यह परिकल्पना के अनुरूप है कि डीबी गलती हो सकती है।hsqldb/hibernate ऐप के प्रदर्शन को कैसे ट्यून करें
मुझे पता है कि कार्यक्रम के सामान्य प्रोफाइलिंग को कैसे पता चलाना है कि गर्म स्पॉट कहां हैं और महत्वपूर्ण मात्रा में क्या समय ले रहा है। लेकिन सभी प्रोफाइलर्स जिन्हें मैं प्रोग्राम के भीतर मॉनीटर निष्पादन समय के बारे में जानता हूं और बाहरी संसाधनों के लिए आपको कॉल के बारे में कोई मदद नहीं देता हूं। प्रदर्शन को अनुकूलित करने के लिए कहां से पता लगाने के लिए बाहरी डीबी कॉल का उपयोग कर रहे प्रोफ़ाइल प्रोग्रामों के लिए लोग किस टूल का उपयोग करते हैं?
एक छोटे से अंधेरे को खोजने के लिए पहले से ही कुछ गर्म धब्बे पाए गए हैं - मैंने एक कॉल देखा जहां मैं किसी विशेष वर्ग की सभी वस्तुओं को समझा रहा था ताकि यह पता चल सके कि क्या कोई था। मानदंड में एक पंक्ति परिवर्तन [.setMaxResults (1)] ने आधे सेकेंड से वर्चुअल तात्कालिक तक कॉल को बदल दिया। मैं उन स्थानों को भी देखता हूं जहां मैं एक ही लेनदेन के भीतर कई बार डीबी से एक ही सवाल पूछता हूं। मैंने अभी तक जवाब कैश करने का तरीका नहीं निकाला है, लेकिन जो मैं वास्तव में चाहता हूं वह एक उपकरण है जो मुझे इस तरह की चीजों को अधिक व्यवस्थित रूप से देखने में मदद करता है।
मैंने डीबी कॉन्फ़िगरेशन पर कोई प्रदर्शन ट्यूनिंग नहीं किया है। मैंने माना था कि मेरी समस्या खराब विचारों की गलती या गलत सवाल पूछने की अधिक संभावना थी। मुझे लगता है कि मैं प्रश्नों की संख्या और उनके खर्च को कम करने के लिए एक रास्ता खोजना चाहता हूं, और फिर (80% तक उपयोग को काटने के बाद) उस कम लोड पर कैशिंग और अन्य चाल का उपयोग कर डीबी को गति दें। लेकिन मैं डीबी उपयोग को ट्यून करने में एक विशेषज्ञ नहीं हूं। क्या आप आवेदन से पहले डीबी को ट्यून करने का सुझाव देंगे? – PanCrit
यदि आप सुनिश्चित हैं कि समस्या हाइबरनेट में है, तो डीबी को ट्यून करने में मदद नहीं होगी। ट्यूनिंग से पहले, एक प्रोफाइलर टूल या कुछ ऐसा उपयोग करें जो आपको अपने प्रदर्शन समस्याओं की जड़ को ट्रैक करने में मदद करता है, फिर इसे अनुकूलित करें। दुर्भाग्य से, कोई आसान तरीका नहीं है। अच्छी खबर यह है कि: आज के सभी आईडीई में सभ्य प्रोफाइलिंग समर्थन है। – razenha