2009-06-28 18 views
10

में डेटाबेस की अधिकतम संख्या हम एक एएसपी.Net/C# आधारित प्रोग्राम लिख रहे हैं जिसे संभावित रूप से कई कंपनियों (प्रत्येक में अलग लॉगिन और डेटा) द्वारा एक्सेस किया जाएगा। हम एक एसक्यूएल सर्वर 2008 डेटाबेस (एक ही उदाहरण) रखने के बारे में सोच रहे हैं, प्रत्येक एक कंपनी के लिए। हालांकि, डेटाबेस का उपयोग करने वाला सी # प्रोग्राम वही होगा और ग्राहक द्वारा एक्सेस किए जा रहे डेटाबेस के आधार पर उपयुक्त कनेक्शन स्ट्रिंग तैयार करेगा।एसक्यूएल सर्वर 2008

ऐसे कितने डेटाबेस की वजह से किसी भी प्रदर्शन गिरावट देखने से पहले SQL सर्वर के एक उदाहरण में बनाया जा सकता है:,

  • कनेक्शन की सीमा है क्योंकि प्रत्येक कनेक्शन (यकीन नहीं अगर यह जमा की जाएगी विभिन्न डेटाबेस तक पहुंचने के लिए) एक differents कनेक्शन स्ट्रिंग का उपयोग कर बनाया गया है।

  • डेटाबेस की संख्या पर सीमा, क्या यह हार्डवेयर या एसक्यूएल सर्वर 2008 द्वारा सीमित है, जब डेटाबेस की संख्या 100 कहने के लिए बढ़ जाती है तो गिरावट दिखाई देगी?

और कुछ और मुझे याद आ रही है?

अपने समय के लिए धन्यवाद

उत्तर

13
  • प्रति एसक्यूएल सर्वर उदाहरण मैक्स डेटाबेस: 32.767
  • मैक्स उपयोगकर्ता कनेक्शन: 32.767

(यहाँ से: Maximum Capacity Specifications for SQL Server)

दोनों व्यावहारिक रूप से एसक्यूएल एस रैम की मात्रा से सीमित हैं इरवर मशीन है, यह उन अधिकतम मूल्यों तक पहुंचने से बहुत पहले है।

दो में से, मुझे संदेह है कि यदि आपके पास हजारों उपयोगकर्ता हैं (जैसे आप कनेक्शन पूलिंग का उपयोग नहीं कर रहे हैं तो उपयोगकर्ता कनेक्शन बड़ी समस्या होगी)। अक्सर पहुँचा की संख्या
यह वास्तव में डेटाबेस की संख्या कि समस्या यह है नहीं है, लेकिन अधिक:

एसक्यूएल सर्वर मशीन के वर्तमान मूल्य खोजने के लिए:

SELECT @@MAX_CONNECTIONS AS 'Max Connections' 

पोस्टर की टिप्पणी के जवाब में अपडेट किया गया उन डेटाबेस में पेज। यदि सभी 'गर्म' पृष्ठ स्मृति में फिट होते हैं (और बहुत कम भौतिक पठन होते हैं) तो सब अच्छा है।

+0

आपकी टिप्पणियों के लिए धन्यवाद यदि कोई भी डेटाबेस डेटाबेस की संख्या में वृद्धि करता है तो एसक्यूएल सर्वर प्रदर्शन घटता है। मान लें कि हम एक ऐसे डेटाबेस की तुलना करते हैं जहां डेटा प्राथमिक/विदेशी कुंजी का उपयोग करके विभाजित होता है और जब प्रत्येक कंपनी एक अलग डेटाबेस पर होती है। साथ ही, ado.net के साथ एसक्यूएल सर्वर कनेक्शन पूलिंग नहीं करेगा यदि आप विभिन्न डेटाबेस से कनेक्शन बना रहे हैं लेकिन एएसपीनेट प्रक्रिया के उसी उदाहरण से कर रहे हैं? – Samuel

+2

@ सैमुएल: सुझाव है कि आप उन प्रश्नों को अपने मूल प्रश्न में जोड़ें। (1) यह वास्तव में डेटाबेस की संख्या नहीं है, लेकिन उन डेटाबेस में अक्सर उपयोग किए जाने वाले पृष्ठों की संख्या अधिक है। यदि सभी 'गर्म' पृष्ठ स्मृति में फिट होते हैं (और बहुत कम भौतिक पठन होते हैं) तो सब अच्छा है। (2) नहीं। एक अलग डीबी के लिए एक कनेक्शन एक और उपयोगकर्ता कनेक्शन है। –

2

एकाधिक क्लाइंट के लिए कई डेटाबेस होने से आसानी से रखरखाव दुःस्वप्न बन सकता है। यदि आवेदन एक जैसा है, तो मुझे लगता है कि डीबी डिज़ाइन भी वही होगा।

हमने पिछले साल एक समान परियोजना जोड़े की थी, लेकिन हमने उसी डेटाबेस में डेटा कम करने के लिए जाने का फैसला किया और फिर यह सुनिश्चित करने के लिए एक मजबूत सुरक्षा मॉडल विकसित किया कि एक ग्राहक किसी अन्य ग्राहक के डेटा को देखने या संशोधित करने का अंत नहीं करता है।

मैं गर्व से कह सकता हूं कि परियोजना सफल रही और आज जैसा कि हम बोलते हैं, 100+ अलग-अलग ग्राहकों का डेटा धारण कर रहा है और यह निष्पक्ष प्रदर्शन कर रहा है।

राज

+2

यह सच है, लेकिन एक बात जो मैं सोच रहा था, सर्वर को लोड होने पर ग्राहकों को बदलने के लिए लचीलापन है ... यह भी सोचा कि अलग डेटाबेस होने से प्रसंस्करण तेजी से हो सकता है क्योंकि बहुत से लोग नहीं होंगे व्यक्तिगत डेटाबेस में रिकॉर्ड। हम प्रति कंपनी लगभग 100,000 प्रविष्टियों के बारे में बात कर रहे हैं। – Samuel

+2

यदि आप एकल डेटाबेस या डेटाबेस के संग्रह का एकमात्र या निश्चित रूप से बड़ा उपयोगकर्ता हैं, तो इसका रखरखाव लगभग dev के समय से स्वचालित हो जाना चाहिए। यदि आप इसे स्वचालित नहीं कर सकते हैं तो यह समस्याओं के लिए कम से कम संयोग पर बनने जा रहा है। एक अच्छी तरह से प्रबंधित तैनाती प्रक्रिया को कई, समान, डेटाबेस को एक दुःस्वप्न के रख-रखाव को नहीं ढूंढना चाहिए। – ProfK

4

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

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