SQL सर्वर एक्सप्रेस स्मृति और CPU सीमा प्रति उदाहरण है?


32

यदि मेरे पास सर्वर में 8GB RAM है और मैं SQL सर्वर एक्सप्रेस के 4 इंस्टेंस चलाता हूं, तो SQL सर्वर द्वारा उपयोग की जाने वाली कुल मेमोरी सीमा 1GB या 4GB होगी?

क्या प्रत्येक डेटाबेस को संसाधनों का बेहतर उपयोग करने में सक्षम बनाने के लिए इस तरह के कई उदाहरणों को चलाना उचित होगा (यह मानते हुए कि सर्वर के पास बहुत सारे संसाधन हैं)?

जवाबों:


27

यदि मेरे पास सर्वर में 8GB RAM है और मैं SQL एक्सप्रेस के 4 इंस्टेंस चलाता हूं, तो SQL सर्वर द्वारा उपयोग की जाने वाली कुल मेमोरी सीमा 1GB या 4GB होगी?

प्रत्येक उदाहरण बफर पूल के लिए 1GB तक मेमोरी का उपयोग कर सकता है । प्रत्येक उदाहरण कुल 1GB से थोड़ा अधिक उपयोग कर सकता है क्योंकि सभी मेमोरी आवंटन बफर पूल से नहीं गुजरते हैं। आपके मामले में, बफर पूल के लिए चार उदाहरणों द्वारा उपयोग की जाने वाली अधिकतम मेमोरी 4GB होगी।

BOL अर्क

पुष्टि करने के लिए, मैं दो शुरू कर दिया उदाहरणों का उपयोग कर उदाहरण के लिए एसक्यूएल सर्वर 2008 एक्सप्रेस डेटाबेस इंजन की, (अलग) लोड पूल बफ़र होना कुछ गतिविधि प्रदर्शन किया है, और फिर तरीके का एक संख्या में प्रति-उदाहरण के स्मृति उपयोग को देखा, DBCC MEMORYSTATUS या का उपयोग करके बफ़र्स की संख्या की गिनती करके Sysinos_os_buffer_descriptors DMV ।

भौतिक स्मृति उपयोग नीचे दिए गए नंबर प्रणाली DMV के खिलाफ एक साथ प्रश्नों का उपयोग कर प्राप्त किया गया sys.dm_os_process_memory डेटाबेस इंजन के प्रत्येक उदाहरण पर:

SELECT 
    dopm.physical_memory_in_use_kb 
FROM sys.dm_os_process_memory AS dopm;

आउटपुट:

╔═══════════╦═══════════╗
 Instance1  Instance2 
╠═══════════╬═══════════╣
   1102872    1059812 
╚═══════════╩═══════════╝

इनमें से प्रत्येक 1GB से थोड़ा अधिक है क्योंकि कुल भौतिक मेमोरी उपयोग में बफर पूल उपयोग से अधिक शामिल है, जैसा कि पहले उल्लेख किया गया है।

क्या प्रत्येक डेटाबेस को संसाधनों का बेहतर उपयोग करने में सक्षम बनाने के लिए इस तरह के कई उदाहरणों को चलाना उचित होगा (यह मानते हुए कि सर्वर के पास बहुत सारे संसाधन हैं)?

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

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


3
नोट के अलावा, कसौटी पाठक के लिए: SQL Server Database Engineसाधन A Single Instance। हर बार आपको कनेक्शन संवाद सर्वर को बदलना होगा जिसे आप (जैसे localhost\devबनाम localhost\test) कनेक्ट कर रहे हैं जो एक नया "इंस्टेंस" या एक नया "इंजन" है। बस मैंने सोचा कि मैं इसे साफ कर दूंगा।
jcolebrand

7

हर इंस्टेंस अलग-अलग मायने रखता है क्योंकि इसकी एक अलग प्रक्रिया है।


1
मुझे लगता है कि आप निश्चित हैं कि सीमक को सभी प्रक्रियाओं में लागू नहीं किया गया है?

-8

SQL Express में, डेटाबेस इंजन केवल 1 GB RAM का उपभोग कर सकता है , और कोई भी DB 10 GB से बड़ा नहीं हो सकता है।

तो, 4 उदाहरणों को अभी भी उस 1 जीबी रैम को साझा करना होगा।

आप http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx पर अधिक जानकारी प्राप्त कर सकते हैं

स्टैक ओवरफ्लो पर यहाँ एक समान चर्चा का कहना है कि यह सही उत्तर बीटीडब्लू है, इसलिए नीचे की ओर कोई आवश्यकता नहीं है: https://stackoverflow.com/questions/1169634/limitation-of-sql-server-express

यह पृष्ठ SQL सर्वर एक्सप्रेस 2005 के बारे में भी ऐसा ही कहता है: http://www.edugeek.net/forums/windows-server-2000-2003/55183-sql-server-express-2005-memory-limit प्रति-instance.html


3
आवश्यक रूप से पालन नहीं करता है - क्या यह प्रति सर्वर या प्रति उदाहरण 1 इंजन है?

1
ठीक है, इसका मतलब यह है, लेकिन यह भी संभव है कि वे इसे मेमोरी सीमा रेखा से चूक गए।

1
सिर्फ इसलिए कि यह इंटरनेट पर है, इसे सच करना होगा। वे इंटरनेट पर कभी कुछ गलत नहीं होने देंगे। ~ यह कहना कि यह कहने के लिए कि समस्या यह है कि सभी SQL एक्सप्रेस को हमेशा के लिए प्रतिबंधित करने के एकमात्र उद्देश्य के लिए OS में प्रबंधन प्रक्रिया या कुछ बेक किया जाना चाहिए। मुझे वास्तव में नहीं लगता कि ऐसा हुआ है (AKA यह बिल्कुल नहीं हुआ, इस तथ्य के आधार पर कि मैं ऑक्सीजन सांस लेता हूं और तर्क का अच्छी तरह से पालन कर सकता हूं) इसलिए इस तथ्य का तथ्य यह है कि प्रक्रिया स्वयं RAM की मात्रा का प्रबंधन करती है उपयोग किया गया।
jcolebrand

2
लोगों से निवेदन करना कि जो स्वाभाविक रूप से एक बुरा जवाब है, उस पर आप नकारात्मक प्रभाव डालने की संभावना नहीं है, चाहे आप किसी भी स्रोत का हवाला दें। यदि आप वास्तव में स्रोत का हवाला देना चाहते हैं, तो कई उदाहरणों को लोड करें और स्मृति में अपना वास्तविक भार दिखाएं। यह सुनिश्चित करने का एकमात्र तरीका है। या तो वह, या हमें Microsoft कोड दिखाएं जो SQL एक्सप्रेस के व्यवहार को नियंत्रित करता है। यह हमेशा प्रति उदाहरण प्रबंधन है, क्योंकि प्रत्येक सेवा ऊपर से नीचे तक स्वयं-निहित है। सभी प्रबंधन सेवाएं बंदरगाहों पर काम करती हैं।
jcolebrand

2
Maximum memory utilized (SQL Server Database Engine)ध्यान दें कि वे उसी शब्दावली का उपयोग करते हैं जैसे वे लाइन पर करते हैं: Maximum Compute Capacity Used by a Single Instance (SQL Server Database Engine)1(घर पर खेलने वालों के लिए, इसका मतलब यह है कि वे एक ही माप हैं) msdn.microsoft.com/en-us/library/… और मैं भी प्यार कैसे एसओ पर जवाब है कि गलत से जुड़ा हुआ था गलत गलत है। "1 कोर या 4 सॉकेट्स" से शुरू करें, संपादकों को भी कॉपी-पेस्ट नहीं किया जा सकता है।
jcolebrand
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.