2011-06-22 12 views
6
<property name="hibernate.generate_statistics" value="true"/> 

उत्पादन परिदृश्य में, उपर्युक्त ध्वज को झूठी पर स्विच करने का अर्थ होगा। अन्य झंडे को संशोधित किया जाना चाहिए ताकि हाइबरनेट इंजन को एक MySQL डेटाबेस तक पहुंचने की तेज गति के लिए अनुकूलित किया जा सके।नमूना persistence.xml जेपी 2 और हाइबरनेट 3.6.x

उत्तर

0

मैंने उपयोगी कीवर्ड के विभिन्न संयोजनों के लिए Google'd किया और मैं आपको सही दिशा में इंगित करने के लिए कुछ उपयोगी लिंक लेकर आया। बस याद रखें, उत्पादन वातावरण के लिए "सही" गुणों की एक एकल, परिभाषित सूची नहीं होगी। लोग अपने अनुभव के आधार पर चीजों की अनुशंसा करेंगे लेकिन आपको चीजों को आजमाने की कोशिश करनी होगी और यह समझने के लिए सामान्य ज्ञान का उपयोग करना होगा कि आपके लिए सबसे अच्छा क्या काम करता है।

Hibernate Documentation of Available Configurable Properties

Sample persistence.xml file for MySql

केवल संपत्ति मैंने कभी जानबूझकर ठेस कॉन्फ़िगरेशन के लिए बदलने के लिए याद करने के लिए पड़ा है hibernate.hbm2ddl.auto संपत्ति जो हाइबरनेट सीधे स्वचालित रूप से DDL बयान को क्रियान्वित करते हुए अपने DB स्कीमा परिवर्तन की सुविधा मिलेगी है। परीक्षण डीबी के लिए, यह अक्सर "निर्माण-ड्रॉप" के मान का उपयोग करने के लिए समझ में आता है ताकि परीक्षण सत्र फैक्ट्री आपके लिए आवश्यक तालिकाओं का निर्माण करे या मौजूदा, हालिया स्कीमा परिवर्तनों से मेल खाने के लिए मौजूदा लोगों को बदल सके। प्रोड पर, आप अपनी स्कीमा के साथ हाइबरनेट गड़बड़ नहीं करना चाहते हैं। यहां तक ​​कि हाइबरनेट लोग भी इस सुविधा का उत्पादन वातावरण में उपयोग नहीं करने की चेतावनी देते हैं क्योंकि डेटा अखंडता की गारंटी नहीं है। प्रोड के लिए आपको जिस मूल्य का उपयोग करना चाहिए वह "मान्य" है जो केवल यह सत्यापित करेगा कि जिस डीबी से आप कनेक्ट कर रहे हैं, उसमें आपकी हाइबरनेट संस्थाओं का सही स्कीमा है और यदि विसंगतियां हैं तो सत्र सत्र को लोड करने में विफल रहेगा।

2

यह निर्भर करता है :) आप कैश आकार सेट कर सकते हैं, गहराई लाने (बाहरी जुड़ने के लिए), बैच आकार लाने और कई और चीजें प्राप्त कर सकते हैं।

शायद आप बहुत अधिक लॉग इन नहीं करना चाहते हैं (show_sql => झूठी पर सेट करें, format_sql => झूठी पर सेट करें, use_sql_comments => गलत पर सेट करें)।

लेकिन वास्तव में, यह निर्भर करता है और आपको मापना होगा।

कनेक्शन पूल का उपयोग और उचित रूप से कॉन्फ़िगर करना भी महत्वपूर्ण है। यहां फिर से: सामान्य ज्ञान और माप का उपयोग करें।

उम्मीद है, इन कड़ियों उपयोगी साबित होगा:

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html

महत्वपूर्ण बिंदु मॉडल सही पाने के लिए है। प्रदर्शन एक मुद्दा होगा यदि कई एसक्यूएल अनुरोध उत्पन्न होते हैं जो बड़े पैमाने पर जुड़ते हैं। तो यदि प्रदर्शन महत्वपूर्ण है, तो आपको सामान्यीकरण पर या वास्तव में अपनी इकाई-संबंध मॉडलिंग में बहुत अधिक सामान्यीकरण नहीं करने पर कुछ सोचना होगा।

इसके अलावा, संग्रह और आप उन्हें कैसे मॉडल/संभालते हैं, प्रदर्शन के संदर्भ में एक बड़ी भूमिका निभा सकते हैं।

और जहां तक ​​कैशिंग का संबंध है: आपके उपयोग के मामले के आधार पर, यदि आप अपना दूसरा स्तर कैश (उदा। एशैच) को सही तरीके से कॉन्फ़िगर करते हैं तो आप बड़ी लंबाई से प्रदर्शन में सुधार कर सकते हैं। इसका फिर से मतलब है: कैश किया जा सकता है और क्या नहीं और कितना लंबा रहता है और आपके कैश कितने बड़े हो सकते हैं और इसके बारे में सोचें। तो यह वास्तव में, पूरी तरह से निर्भर करता है :)

संबंधित मुद्दे