के साथ थोक सम्मिलन संचालन को तेज करें मैं ओरेकल 11 जी पर एनएचबीर्नेट 3.2 के साथ थोक insert
संचालन को तेज करना चाहता हूं।NHibernate
lazily भूमिका का एक संग्रह प्रारंभ करने में विफल: इस मैं
Session.Save(entity); Session.Flush(); Session.Clear();
कोशिश की ... मेरी
foreach
पाश में लेकिन सत्र में लापता वस्तुओं के कारण एक अपवाद मिल गया ऐसा करने के लिए MyClass.PropertyX,: कोई सत्र या सत्र बंद किया गया<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property> <property name="connection.connection_string">xxx</property> <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property> <property name="adonet.batch_size">50</property> <property name="query.substitutions">true=1, false=0</property> <property name="proxyfactory.factory_class">NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate</property> </session-factory> </hibernate-configuration>
एक और प्रयास बैच का आकार निर्धारित करने के लिए था
अतिरिक्त मैं अपने कोड में Session.SetBatchSize(50)
सेट एक निम्न अपवाद है:
कोई बैच आकार सत्र कारखाने के लिए परिभाषित किया गया था, बैचिंग अक्षम है। बैचिंग सक्षम करने के लिए adonet.batch_size = 1 सेट करें।
एकमात्र स्थान जहां यह अपवाद फेंक दिया गया है NonBatchingBatcher है, तो ऐसा लगता है कि मेरे सत्र में गलत बैचर है।
यहां क्या गलत है? मैं NHibernate (statlese सत्रों का उपयोग किए बिना) के साथ बैच आवेषण कैसे बढ़ा सकता हूं?
आपका पहला अपवाद वास्तव में क्या था? इसके अलावा, यदि आप लूप * के अंदर 'फ्लश' * करते हैं, तो आप कुछ भी बैच नहीं करेंगे। –
@Diego Mijelshon ने अपवाद संदेश जोड़ा – deamon
@deamon यह बहु-थ्रेड किसी भी तरह से है? – Newbie