Desktop C# SQL Server (LocalDB) database access patterns -
मैं एक मूल C ++
/ PHP
/ < कोड> MySQL / SQLite
पृष्ठभूमि।
इस सप्ताहांत सीखने C #
/ WinForms
/ SQL सर्वर
/ asp.NET
। और यह सब अलग तरह से काम करने लगता है। विशेष रूप से मुझे अभी पता नहीं है कि हुड के तहत क्या होता है, मैं कहां चीजों को और भी इष्ट कर सकता हूं।
SQL Server
के साथ काम करने की आवश्यकता < कोड> (लोकलडीबी) मुझे लगता है कि मैंने बहुत सारे ऑनलाइन उदाहरणों में मैंने पढ़ा + वीडियो ट्यूटोरियल्स में एक अजीब डेटाबेस पहुंच पैटर्न देखा है (मुझे अमेज़ॅन से 2 किताबें मिलीं लेकिन वे अब इस समय अगले शताब्दी तक पहुंचते हैं, मेरी शर्म की बात है , ऑनलाइन सीखने की मूल बातें) ।
जब भी वे उन उदाहरणों में डेटाबेस तक पहुंचते हैं, वे प्रत्येक क्वेरी के लिए SqlConnection
खोलते हैं और बंद करते हैं।
का उपयोग कर (var sql = नया SqlConnection ()) {sql.Open (); // do Sql सामान यहाँ}
एक सी + + आदमी के लिए, यह मुझे बहुत परेशान कर रहा है:
- ओपन / क्लोज़ कनेक्शन का ओवरहेड क्या है जब मुझे कोई प्रश्न पूछने की आवश्यकता हो, तब
- किसी ऑब्जेक्ट को खोलने और आवश्यक होने पर इसे पुनः उपयोग क्यों न करें?
क्या कोई मुझे बता सकता है कि यह कोई प्रदर्शन- डेस्कटॉप C #
में अनुकूल डीबी पहुंच पैटर्न में या प्लान बी के साथ जाएं? अंतिम परिणाम एक C # Windows Service
होगा जिसमें IOCP
सर्वर (जो मैंने पहले से ही सोचा था) जिसे 1,000 से अधिक कनेक्शन से निपटना चाहिए यह बहुत डेटा गहन नहीं होगा लेकिन 100 क्लाइंट्स के साथ, एसक्ल ओपन / क्लोज़ ऑपरेशन्स ओवरहेड, यदि कोई हो, तो जल्दी से जोड़ सकते हैं।
मैंने भी MultipleActiveResultSets = True; भी देखा है, -reads। इसलिए, मैं संपूर्ण एप्लिकेशन के पठन-ऐक्सेस और amp के लिए एक ही कनेक्शन की कल्पना करूँगा; मार्स
के साथ लघु-लिखना को चाल करना चाहिए ?! और बड़े INSERT
/ UPDATE
।
योजना बी के लिए समर्पित कनेक्शन: मैंने शुरू में बनाने के बारे में सोचा है छोटे पढ़ने / लेखन कार्यों के लिए एक कनेक्शन पूल। और एक और के लिए लंबे समय तक पढ़ने / लिखने के संचालन। और इसके माध्यम से अपने आप को लूपिंग ... या शायद एक ग्राहक के प्रति एक कनेक्शन है लेकिन मुझे यकीन नहीं है कि यह काफी अपमानजनक नहीं होगा।
< P> हमेशा की तरह, दस्तावेज़ पढ़ें:
Comments
Post a Comment