हमारे पास SQL Server 2014 SP1 पर एक सक्रिय OLTP 40GB डेटाबेस है। IO_Completion प्रतीक्षा के साथ क्वेरी धीमी पाई जाती हैं, डिस्क कतार लंबाई 900 तक बढ़ रही है, और SQL सर्वर प्रत्युत्तर देना बंद कर देता है। हमने क्या प्रयास किया:
आवृत्ति को पुनरारंभ करें और एक मिनट में यह उसी तरह व्यवहार करना शुरू कर देता है।
दूसरे पुनरारंभ के बाद, हमने प्रत्येक टेम्पर्ड डेटाफाइल के प्रारंभिक आकार को बदल दिया (इसमें 16 डेटा फाइलें बनाई गई हैं) और यह सही तरीके से काम करना शुरू कर देता है।
नोट: हम मध्यवर्ती परिणाम सेट के लिए तालिका चर का उपयोग कर रहे हैं। ये परिणाम सेट बहुत छोटे हैं।
यह एक महीने में दो बार हुआ। जब भी मैं डेटा फ़ाइलों में मैन्युअल रूप से थोड़ा सा स्थान जोड़ता हूं, तो यह सामान्य रूप से काम करना शुरू कर देता है। अधिक दिलचस्प बात यह है कि हमारे पास SQL Server 2008 R2 और SQL Server 2012 पर समान सेटअप (समान हार्डवेयर, समान फ़ोल्डर और फ़ाइलें सेटअप, समान कार्यभार) ठीक काम कर रहा है।
स्थायी समाधान खोजने के लिए कृपया हमारी सहायता करें।
सभी डेटा फ़ाइलों का प्रारंभिक आकार समान 1000 एमबी है, वर्तमान 1500 एमबी प्रत्येक है। सभी समान हैं। प्रत्येक के लिए ऑटोग्रॉथ 100 एमबी है। इससे पहले हम पीएफएस और जीएएम पेज विवाद का सामना कर रहे थे और हम 16 तक बढ़ गए और समस्या हल हो गई। दोनों झंडे 1117 और 1118 सक्षम हैं। 2 NUMA नोड्स पर 24 कोर। सभी डेटाफ़ाइल्स एक ही वॉल्यूम पर हैं। सरल डिस्क, नहीं SAN।
इंस्टेंस एक भौतिक मशीन पर है। टेबल वेरिएबल्स के साथ प्रश्न और हैश जॉइन के साथ प्रश्न IO_Completion वेट को सबसे अधिक उत्पन्न कर रहे हैं।
वूडोब द्वारा विस्तृत उत्तर ने हमें और अधिक विस्तार से खोज करने के लिए प्रेरित किया। इससे पहले हम कैसे चूक गए:
डेटाबेस 'tempdb' में फ़ाइल 'टेम्पलॉग' का ऑटोज्रो उपयोगकर्ता द्वारा रद्द कर दिया गया था या 7704 मिलीसेकंड के बाद का समय समाप्त हो गया था। इस फ़ाइल के लिए एक छोटा FILEGROWTH मान सेट करने के लिए या स्पष्ट रूप से एक नया फ़ाइल आकार सेट करने के लिए ALAT DATABASE का उपयोग करें।
यह हम लॉग में पाया जब कभी इस प्रकार की समस्या हो रही है। हम तेज ड्राइव को अलग करने के लिए TempDB बढ़ रहे हैं।