2012-12-17 23 views
5

http://www.sqlite.org/threadsafe.html के अनुसार से sqlite3 के लिए रीड ओनली पहुंच तीन अलग अलग सूत्रण मोड जब SQLite के साथ काम कर रहे हैं: एकल पिरोया, मल्टी-थ्रेडेड और धारावाहिक धारावाहिक और मल्टी-थ्रेडेड मोड के लिए कॉन्फ़िगर करते हैं, mutexes उपयोग किया जाता है और में एकल पिरोया मोड mutexes सब पर उपयोग नहीं किया जाता (मोड वे कम या ज्यादा उपयोग किया जाता है के आधार पर)।केवल एक से अधिक थ्रेड

मान लीजिए कि डेटाबेस केवल प्रश्नों के लिए उपयोग किया जाएगा (केवल पढ़ने के लिए) क्या सिंगल-थ्रेडेड मोड का उपयोग करना संभव है, जबकि यह अभी भी विभिन्न धागे से एक्सेस कर रहा है? या ऐसे वैश्विक संसाधन हैं जिन्हें संरक्षित करने की आवश्यकता है?

इसके अलावा, डिफ़ॉल्ट ADO.NET एडाप्टर System.Data.Sqlite उसी तरीके से उपयोग किया जा सकता है? (कैश, संकलित बयान, परिणाम सेट, आदि), तुम इतनी

+0

मैं इस प्रश्न का विस्तार करना चाहता हूं: मुझे आश्चर्य है कि बहु-थ्रेडेड और धारावाहिक के बीच कोई प्रदर्शन अंतर है या नहीं? अगर पहुंच केवल पढ़ने के लिए है, तो वे बराबर हैं, है ना? – Fabian

उत्तर

3

SQLite पुस्तकालय कई आंतरिक डाटा संरचनाओं कि यहां तक ​​कि केवल पढ़ने के लिए डेटाबेस फ़ाइल के लिए बदल जाओ है चाहिए कभी नहीं पहुँच एकाधिक से एक एकल पिरोया कनेक्शन धागे।

ADO.NET कोई थ्रेड सुरक्षा गारंटी नहीं देता है, इसलिए neither does System.Data.SQLite

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