Wednesday 15 April 2015

c# - NHibernate and SQLite - very slow transaction commit -


यहां कोड है:

  का प्रयोग (var सत्र = NHibernateSessionFactory.OpenSession ()) // 0ms {(विभिन्न लेनदेन = सत्र। बेनिफ्रेंसैक्शन ()) // 0ms {session.Save (नया टेस्ट) ({text = "..."}); // ~ 2ms लेनदेन.संचार (); // 100-150 एमएमएस !! }}   

लॉग आउटपुट:

  ... 2013-06-20 17: 45: 48,857 [DEBUG] [NHibernate.Impl.SessionImpl] - लेनदेन पूर्ण होने से पहले 2013-06-20 17: 45: 48,98 9 [डेब्यूग] [NHibernate.Transaction.AdoTransaction] - IDbTransaction प्रतिबद्ध ...   

ऐसा क्यों इतने समय लगता है? PostgreSQL परिणामों के साथ ~ 5-10 एमएमएस में एक ही कोड ...

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



No comments:

Post a Comment