अंगूठे का मूल नियम विवाद से बचने के लिए अलग-अलग संस्करणों पर फ़ाइलों को अलग करना है, हालांकि आपको प्राप्त होने वाले प्रदर्शन का लाभ I / O सबसिस्टम और वर्कलोड द्वारा बेतहाशा भिन्न होता है। उदाहरण के लिए, एक एकल भौतिक स्पिंडल पर कई फाइलें जहां तक जाती हैं, वहां तक परफॉरमेंस के रूप में चूसना होता है, लेकिन एक ही व्यवस्था के साथ SAN LUN कई सौ ड्राइव के साथ RAID 10 सरणियों से ठीक हो सकता है। डिस्क कतार लंबाई काउंटर आपके मित्र को यह बताने का सबसे सरल तरीका है कि क्या आपको I / O अड़चन है।
आप डेटाबेस पर I / O पैटर्न देख रहे हैं - केवल-पढ़ने के लिए, ज्यादातर, पढ़ने-लिखने, लिखने-ज्यादातर, लिखने-केवल - और उस पर आधारित चीजों के आधार पर। आपको सही RAID स्तर चुनने और यह सुनिश्चित करने की भी आवश्यकता है कि आपका डिस्क विभाजन ऑफ़सेट्स, RAID स्ट्राइप आकार और NTFS आवंटन इकाई आकार सही तरीके से सेट है। कुछ लोग गैर-अनुक्रमित अनुक्रमितों को एक अलग फ़ाइलग्रुप में अलग करना पसंद करते हैं, लेकिन जैसा कि मैंने ऊपर बताया है, यहाँ प्रदर्शन लाभ भिन्न होते हैं।
प्रदर्शन के साथ-साथ, आपको प्रबंधनीयता और पुनर्प्राप्ति पर विचार करना चाहिए। 100GB डेटाबेस के लिए एकल, अखंड डेटा फ़ाइल होने का अर्थ है कि आपकी पुनर्स्थापना की इकाई वह फ़ाइल है। यह 4 25GB फ़ाइल समूह में विभाजित होने का मतलब है कि आप आंशिक डेटाबेस उपलब्धता का उपयोग कर सकते हैं और टुकड़े टुकड़े को केवल क्षतिग्रस्त होने की स्थिति में एकल फ़ाइल समूह को पुनर्स्थापित करना है। कई फाइलग्रुप में टेबल और इंडेक्स को विभाजित करके आप रखरखाव के संचालन (जैसे इंडेक्स फ़्रेग्मेंटेशन)) से डेटाबेस के किन हिस्सों को प्रभावित कर सकते हैं।
Tempdb एक संपूर्ण विशेष मामला है, और मैं आपको अपने एक ब्लॉग पोस्ट पर इंगित करूँगा, जो सभी को बताता है कि क्यों और कैसे tempdb को विभाजित करना है - वहाँ बहुत सारी भ्रांतियाँ हैं।
आपको यहां 'व्यापक सामान्यीकरण' की अनुशंसा दिए बिना, मैं आपको पढ़ने के लिए व्हाइटपॉपर और ब्लॉग पोस्ट के एक समूह में इंगित करूंगा:
आशा है कि यह आपकी मदद करता है!