24

मेरे पास एक छोटी परियोजना है जिसमें 1 कंप्यूटर पर 1 उपयोगकर्ता होगा। डेटाबेस बल्कि छोटा होगा (शायद 1 एमबी डेटा से कम)। मैं उस परियोजना के लिए डब्ल्यूपीएफ और इकाई फ्रेमवर्क का उपयोग करने की योजना बना रहा हूं। एसक्यूएल सर्वर सीई और SQL सर्वर एक्सप्रेस LocalDB (SQL Server 2012 के साथ):एसक्यूएल स्थानीय डीबी बनाम एसक्यूएल सर्वर सीई

मैं अपने प्रोजेक्ट के लिए 2 संभावित डेटाबेस समाधान के साथ आया था। मैंने कभी भी उनमें से किसी के साथ काम नहीं किया है, मैं पूर्ण SQL Server 2008 स्थापना के साथ काम करने के लिए अधिक उपयोग किया जाता हूं।

मैं भी क्लाइंट पर स्थापित करना आसान बनाना चाहता हूं। आदर्श रूप में मैं सिर्फ एक फ़ोल्डर (मेरी .exe फ़ाइल के साथ) पर फ़ाइलों का एक गुच्छा फेंकना चाहता हूं।

तो यहां कोई भी मुझे उपयोग करने के लिए सबसे अच्छी तकनीक का सुझाव दे सकता है?

धन्यवाद!

उत्तर

33

Introducing SQL Server Express Local DB Runtime प्रस्तुति देखें - एक महान सिंहावलोकन देता है।

स्थानीय डीबी का बड़ा लाभ यह है कि यह वास्तविक SQL सर्वर है - यह SQL सर्वर एक्सप्रेस का एक विशेष संस्करण है, लेकिन यह मूल रूप से "वास्तविक" SQL सर्वर के सभी चीजों का समर्थन करता है - स्थानिक डेटा प्रकार, संग्रहित प्रक्रियाएं - आप इसे नाम दें।

दूसरी तरफ SQL सर्वर कॉम्पैक्ट संस्करण एक बहुत अधिक स्केल डाउन संस्करण है - कई सुविधाएं और डेटाटाइप समर्थित नहीं हैं। यह छोटा और अधिक "चुस्त" है - लेकिन इसमें बहुत सारे पंच की कमी है।

मैं व्यक्तिगत रूप से SQL सर्वर सीई 4 पर स्थानीय डीबी रनटाइम के साथ SQL सर्वर एक्सप्रेस चुनता हूं - जब तक कि आपको विशेष रूप से SQL सर्वर सीई (जैसे मोबाइल डिवाइस पर) के छोटे आकार की आवश्यकता न हो।

एरिकेजे के उत्कृष्ट पर सब कुछ SQL Server कॉम्पैक्ट वेबसाइट पर comparison between SQL Server CE 3.5, CE 4.0, SQL Server Express 2008 R2 and SQL Server 2012 Express LocalDB भी देखें।

+1

एक और अच्छा लिंक http://blogs.msdn.com/b/jerrynixon/archive/2012/02/26/sql-express-v-localdb-v-sql-compact-edition.aspx – nawfal

27

यह निर्भर करता है, लेकिन आपकी आवश्यकताओं (यानी बहुत कम मात्रा में डेटा और एक्सकॉपी इंस्टॉलेशन) पर आधारित है, आपका एकमात्र विकल्प SQL सर्वर कॉम्पैक्ट है, क्योंकि डिस्क पर एसक्यूएल कॉम्पैक्ट का पदचिह्न स्थानीय एमबी के साथ 18 एमबी बनाम 160 एमबी है, और LocalDB को एक व्यवस्थापक इंस्टॉल (केवल एमएसआई के रूप में आता है) की आवश्यकता होती है - लेकिन यदि SQL सर्वर compatibilty अधिक महत्वपूर्ण है, तो स्थानीय डीबी सबसे अच्छा विकल्प है (marc_s नोट्स के रूप में)

5

मुझे वास्तव में यहां एरिकईजे के साथ जाना नहीं है। मेरे पास अपने जवाब को वोट देने की प्रतिष्ठा नहीं है, लेकिन आपके अनुरोधित लक्ष्य एसक्यूएल सीई को वास्तव में सबसे तेज़ और बाहर दिया गया है। एसक्यूएल सीई की "गायब फीचर्स" वीएस लोकल डीबी पर मार्क_एस द्वारा प्रदान किए गए लिंक के कई तुलनात्मक मुद्दों को आपके एंटीटीफ्रेमवर्क का उपयोग करके कम किया जाता है (प्रक्रियात्मक टी-एसक्यूएल समर्थित नहीं है, लेकिन यदि आप ईएफ और लैम्ब्डा और लाइनक्यू का उपयोग करते हैं, तो यह नहीं होगा वास्तव में एक मुद्दा हो)।

+3

हाँ। मुझे कोई कारण नहीं दिख रहा है कि जब आप स्थानीय फ़ाइल के साथ काम कर रहे हों तो आपको संग्रहीत प्रक्रियाओं की आवश्यकता क्यों होगी। मैं सीई के साथ भी जाऊंगा। –

2

इसके अलावा, यदि उपयोगकर्ताओं द्वारा आसान पहुंच से आपकी बौद्धिक संपदा/स्कीमा/डेटा छिपाना महत्वपूर्ण है, तो SQL सीई पासवर्ड सुरक्षित/एन्क्रिप्टेड हो सकता है। एसक्यूएल स्थानीय डीबी प्रबंधन स्टूडियो से आसानी से खोला जा सकता है।

+0

यदि एप्लिकेशन डीबी खोल सकता है, तो उपयोगकर्ता भी कर सकता है। –

+0

मुझे लगता है कि यही कारण है कि उसने _easy_ पहुंच से छुपाया। एक सामान्य उपयोगकर्ता को अंदर आने के लिए डीबी पासवर्ड पता होना होगा। –

4

सभी अस्पष्ट "यह आसान है" भूलना, "यह छोटा है", "इसमें पंच की कमी है" या "यह हल्का है" जवाब (कोई अपराध नहीं), मुझे लगता है कि किसी को सामना करने के दौरान दोनों के बीच मुख्य अंतर पर ध्यान देना चाहिए पसंद:

  • लोकलडीबी प्रक्रिया से बाहर है।
  • सीई प्रक्रिया में है।

आवेदन प्रक्रिया के हिस्से के रूप में चल रहा है या इसमें कई प्रभाव नहीं हैं जिन्हें शायद अलग-अलग प्रश्नों में खोजा जाना चाहिए।

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

यह भी ध्यान रखें कि कोई भी चिंता कर सकता है कि एक ही सीई कोड चलाने वाली कई प्रक्रियाएं आवश्यकतानुसार अधिक मेमोरी ले सकती हैं, याद रखें कि ऑपरेटिंग सिस्टम कई प्रक्रियाओं के बीच अपने पृष्ठ कैश से पृष्ठों को साझा करने के लिए पर्याप्त स्मार्ट है, ताकि कोई भी वास्तव में कोई मुद्दा नहीं है।

लोकलडीबी स्वचालित रूप से सामान्य एक्सप्रेस इंस्टेंस को प्रबंधित करने का एक तरीका है, और प्रति उपयोगकर्ता आधार पर (यह SQL सर्वर एक्सप्रेस से अलग नहीं है, यह वही बात है)।

2

पीछे क्यों LocalDB

यह डेवलपर्स के लिए विशेष रूप से बनाया गया था बनाया गया था कुछ पृष्ठभूमि के लिए this page देखें। इसे स्थापित करना आसान है, एपीआई स्तर पर अन्य SQL सर्वर संस्करणों के साथ अभी तक कोई प्रबंधन की आवश्यकता नहीं है। इस संबंध में यह मुफ्त एसक्यूएल सर्वर एक्सप्रेस संस्करण के हल्के संस्करण की तरह है।

इस एसक्यूएल सर्वर कॉम्पैक्ट के समान लगता है, वहाँ अंतर हैं:

  • निष्पादन मोड: जबकि LocalDB एक अलग प्रक्रिया के रूप में चलाता है एसक्यूएल सर्वर कॉम्पैक्ट, एक में proc DLL है।
  • डिस्क उपयोग: सभी SQL सर्वर कॉम्पैक्ट बाइनरी कुछ 4 एमबी की राशि है, जबकि स्थानीय डीबी स्थापना 140 एमबी लेती है।
  • विशेषताएं: एसक्यूएल सर्वर कॉम्पैक्ट, क्वेरी करने जैसे प्रमुख आरडीबीएमएस कार्यक्षमता प्रदान करता है, जबकि LocalDB, सुविधाओं का अधिक समृद्ध सेट, संग्रहित प्रक्रियाओं, ज्यामिति और भूगोल डेटा प्रकार सहित आदि

तरह से मैं इसे देख, LocalDB प्रदान करता है यह सुनिश्चित करने के लिए अक्सर ऑफ़लाइन विकास के लिए उपयोग किया जाता है कि आपके द्वारा विकसित कोड आपके उत्पादन SQL सर्वर डेटाबेस के साथ 100% संगत है।

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