हम बहस कर रहे हैं कि हमारे DW टेबल के लिए SORT_IN_TEMPDB विकल्प का उपयोग करें या नहीं। मेरी समझ यह है कि इस विकल्प का उपयोग करते समय अधिक लिखते हैं, हालांकि वे अधिक अनुक्रमिक हैं। हमारे पास एक SAN (जो कई बार कुख्यात रहा है), इसलिए हमारे मामले में हम जितना संभव हो उतना लिखना सीमित करना चाहते हैं। मेरा मानना है कि tempdb एक अलग LUN (डिस्क का सेट) पर है।
हमारे डेटा फ़ाइल में और हमारे tempdb फ़ाइल में डिस्क स्थान बहुत है। इस स्थिति में, क्या हमें SORT_IN_TEMPDB का उपयोग करने से लाभ होगा?
एक बात जिसने मुझे मारा वह इस उत्तर पर टिप्पणी थी
जब एक इंडेक्स का पुनर्निर्माण किया जाता है तो आपको छँटाई के लिए इंडेक्स + 20% के दो बार स्पेस की आवश्यकता होती है। तो सामान्य तौर पर आपके db में हर इंडेक्स को फिर से बनाने के लिए आपको अपने DB में अपने सबसे बड़े इंडेक्स के 120% की आवश्यकता होती है। यदि आप SORT_IN_TEMPDB का उपयोग करते हैं, तो आप केवल 20% जीतते हैं, फिर भी आपको अपनी डेटा फ़ाइल में 100% एक एडिशनल की आवश्यकता होती है। इससे भी अधिक, tempdb में सॉर्ट का उपयोग करने से आपका IO लोड बहुत अधिक बढ़ जाता है, क्योंकि इंडेक्स को एक बार डेटाफ़ाइल में लिखने के बजाय, आप अब इसे एक बार tempdb पर लिखते हैं और फिर इसे डेटा फ़ाइल में लिखते हैं। इसलिए यह हमेशा आदर्श नहीं होता है।
हम निश्चित रूप से अपने धीमे / संभवतः गलत तरीके से किए गए SAN के साथ हमारे IO लोड को बढ़ाना नहीं चाहते हैं।
इसे परखने का सबसे अच्छा तरीका क्या होगा? बस विकल्प के साथ और बिना तालिका का पुनर्निर्माण करके और बार लॉग इन करें?
संपादित करें : हमारे पास 8 tempdb फाइलें हैं, प्रत्येक 15GB। हमारे पास TF 1117/1118 झंडे सेट हैं और IFI सक्षम है। वर्तमान में हम Sort_in_tempdb विकल्प के साथ और इसके बिना पुनर्निर्माण का मिश्रण करते हैं।
धन्यवाद!
SQL सर्वर 2012 एंटरप्राइज़