मैं आखिरी प्रश्न का उत्तर पहले दूंगा: हां, आप इसे तब बदल सकते हैं जब सर्वर बिना किसी समस्या के चल रहा हो। यदि आप SQL के माध्यम से मान बदलना चाहते हैं, तो आप इसे निम्न क्वेरी से कर सकते हैं
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO
SQL सर्वर पर मेमोरी सेट करने के बारे में अधिक जानकारी के लिए यह पृष्ठ देखें ।
आपका पहला सवाल, दुर्भाग्य से इसका उत्तर है: मैं आपको बता नहीं सकता, मैं वहां नहीं हूं।
स्मृति आवंटित करते समय आपको 1,000,000 चीजों की आवश्यकता होती है। प्रश्नों से रिजल्ट सेट कितने बड़े हैं, वे कितनी बार चलते हैं, क्या एक क्वेरी जो 20 एमएस लेती थी वह अब 200 एमएस में लेना ठीक है?
एसक्यूएल की चूक यह मानती है कि यह सर्वर पर चलने वाली एकमात्र चीज है, इसलिए यह मैमोरी को MAX_VALUE पर सेट करता है और यह तब बढ़ता है जब सभी उपलब्ध मेमोरी उपयोग में होती है (और समर्पित हार्डवेयर पर जो आप चाहते हैं कि यह काफी करीब है) हारून एक संभावित चेतावनी के लिए टिप्पणी करते हैं))। आम तौर पर किसी भी वेब सर्वर या डेटाबेस के साथ बातचीत करने वाला अन्य सॉफ्टवेयर नेटवर्क पर अलग-अलग संचार करने वाले हार्डवेयर पर होगा।
आपको वास्तव में बस इसे एक मूल्य पर सेट करने की आवश्यकता है जो आपको लगता है कि समझदार है, और यदि आपका वेबसर्वर अभी भी मेमोरी कम है तो इसे कम कर दिया जाएगा। यदि आप वेबसर्वर को मेमोरी देने के बाद एसक्यूएल आपको पर्याप्त प्रदर्शन नहीं दे रहे हैं, तो इसके लिए आपको अधिक रैम खरीदने या SQL को समर्पित हार्डवेयर में ले जाने की आवश्यकता होगी।