Основне правило - розділити файли на різні томи, щоб уникнути суперечок, однак кількість отриманих результатів, які ви отримуєте, різко змінюється залежно від підсистеми вводу / виводу та навантаження. Наприклад, декілька файлів на одному фізичному шпинделі будуть засмоктуватись, наскільки продуктивність, але однакова композиція з обсягом, що знаходиться на SAN LUN з кількома сотнями накопичувачів з масивів RAID 10, може бути просто чудово. Лічильники довжини черги дисків - ваш друг як найпростіший спосіб визначити, чи є у вас вузьке місце вводу / виводу.
Ви дивитеся на шаблони вводу-виводу в базах даних - лише для читання, в основному для читання, для читання-запису, переважно для запису, лише для запису - і базуєте на цьому речі. Вам також потрібно вибрати правильний рівень RAID і переконатися, що ваш зсув розділу диска, розмір смуги RAID та розмір одиниці розподілу NTFS правильно встановлені. Деякі люди хочуть розділяти некластеризовані індекси на окрему файлову групу, але підвищення продуктивності тут змінюється так само, як я пояснював вище.
Окрім продуктивності, слід враховувати керованість та відновлення. Наявність єдиного монолітного файлу даних для бази даних 100 ГБ означає, що ваш файл відновлення - це файл. Розділивши його на 4 групи файлів розміром 25 ГБ, ви можете використовувати часткову доступність бази даних та відновлювати частинку, щоб відновити лише одну файлову групу лише у випадку її пошкодження. За допомогою таблиць розділів та індексів у декількох групах файлів ви також можете обмежити, на які частини бази даних впливають операції технічного обслуговування (наприклад, видалення фрагментації індексу).
Tempdb - це зовсім окремий випадок, і я накажу вам на своєму блозі, в якому пояснюється все про те, чому і як розділити tempdb - там є багато помилок.
Не даючи вам тут рекомендації щодо "узагальнюючого узагальнення", я вкажу вам на купу білих повідомлень і публікацій в блозі, які ви можете прочитати:
Сподіваюся, це допоможе вам!