पृष्ठभूमि
मैं WinSQL 2012 (64-बिट वेब संस्करण) पर चलने वाले नए सर्वर पर MSSQL 2012 (64-बिट वेब संस्करण) के साथ 64GB रैम के साथ MSSQL 2008 (मानक) पर 160gb डेटाबेस को स्थानांतरित करने की प्रक्रिया में हूँ। पुराना सर्वर लाइव और अंडर लोड है; नया सर्वर उत्पादन में नहीं है। नए सर्वर में 8 tempdb फाइलें (प्रत्येक 4GB) हैं।
संकट
नए सर्वर पर परीक्षण में, मैं कई प्रश्नों के चरणों को देख रहा हूं क्योंकि "ऑपरेटर द्वारा निष्पादन के दौरान डेटा को फैलाने के लिए उपयोग किया जाने वाला टेंपर्ड" का उल्लेख करने वाले अलर्ट हैं। मैं कुछ प्रश्नों को फिर से लिखकर छांटने में सक्षम रहा हूं, लेकिन यह वास्तव में इस मुद्दे को संबोधित नहीं कर रहा है। पुराने सर्वर पर समान क्वेरी स्पिल का कारण नहीं है। मैंने पढ़ा है कि spills तब होती है जब MSSQL मेमोरी में एक ऑपरेशन को पूरा नहीं कर सकता है और उसे tempdb में फैल / पेज करना पड़ता है। क्या मुझे फैल के बारे में चिंतित होना चाहिए?
उदाहरण
मैंने डेटाबेस पर sp_updatestats चलाया है, इसलिए आँकड़े अद्यतित होने चाहिए, लेकिन आप ध्यान देंगे कि पंक्तियों की अनुमानित और वास्तविक संख्या के बीच कुछ विसंगतियां हैं।
याददाश्त की चिंता
मैंने 64GB में से 58 के MSSQL के लिए अधिकतम मेमोरी सेटिंग की है। वर्तमान में MSSQL ने इस मेमोरी के लगभग 35gb का उपभोग किया है, लेकिन इसमें केवल 682mb का वर्किंग सेट है। पुराने सर्वर (उत्पादन में, भार को संभालने के लिए) में 44GB मेमोरी है जो MSSQL के लिए प्रतिबद्ध है, जिसमें से 43.5gb इसके काम करने के सेट में है।
मुझे नहीं पता कि क्या स्पिल्स मेमोरी सेटिंग से संबंधित हो सकती हैं - किसी के पास कोई विचार है? MSSQL के पास वर्तमान में एकड़ के लिए RAM है, इसलिए यह कुछ प्रकार और हैश मैचों के लिए tempdb में क्यों फैल रहा है?