SQL Server 2005/2008 - несколько файловых групп?
Я разработчик в глубине души, но время от времени у клиента нет достойного администратора баз данных для решения этих проблем, поэтому я приглашаю вас решать....
Каковы ваши стратегии/лучшие практики, когда дело доходит до разумной базы данных SQL Server (что-то большее, чем Northwind или AdventureWorks), - вы используете несколько файловых групп? Если да: сколько? И почему?
Каковы ваши критерии, чтобы решить, когда нужно отойти от подхода "одна файловая группа для всего":
- размер базы данных
- сложность базы данных
- требования доступности/надежности?
- что еще?
Если вы используете несколько групп файлов, сколько вы используете? Один для данных, один для индекса, один для журнала? Несколько (сколько) данных? Каковы ваши причины для вашего выбора - почему вы используете точное количество файловых групп:-)
Ответы
Ответ 1
Методология обучения и передовой практики Microsoft выглядит следующим образом:
- Файлы журнала размещаются на отдельном физическом диске.
- Файлы данных размещаются на отдельном физическом диске.
- Несколько групп файлов: когда конкретная таблица чрезвычайно велика. Часто случай в транзакционной базе данных (отдельный физический диск)
- Несколько групп файлов: при использовании диапазонов или при необходимости разбить данные поиска в файл базы данных только для чтения (отдельный физический диск)
Имейте в виду, что MDF технически работает аналогично разделу жесткого диска, когда дело доходит до хранения данных. MDF - это файл с произвольным считыванием, тогда как LDF является последовательно считываемым файлом. Поэтому разделение их на отдельные диски приводит к огромному приросту производительности, если не работает твердотельный накопитель, и в этом случае коэффициент усиления все еще существует.
Ответ 2
Там, по крайней мере, ОДНА хорошая причина наличия нескольких (по крайней мере двух) групп файлов в SQL Server 2008: если вы хотите использовать функцию FILESTREAM, у вас должна быть выделенная и настраиваемая файловая группа для данных FILESTREAM: -)
Марк
Ответ 3
Поддержание нескольких файловых групп помогает снизить нагрузку на ввод-вывод. Это также позволяет гибкость хранения, когда вы можете создать резервную копию файловой группы легко, а не один файл и разделить их на отдельный диск на группу файлов.
Ответ 4
Как правило, у вас должна быть только одна первичная файловая группа и один файл журнала.
Иногда, когда у вас очень статические данные, вы можете создать SECOND файловую группу, содержащую эти статические данные. Затем вы можете создать файловую группу READONLY, которая улучшит вашу производительность. В конце концов, это довольно статические данные. Это не стоит, если у вас есть небольшое количество строк в readonly (например, значения таблицы поиска). Но для некоторых вещей (например, архивированного контента, который все еще можно прочитать), это может быть отличным вариантом.
У меня появилась идея от этого сообщения в блоге.
НТН.
Ответ 5
Я работал над большим количеством БД, и единственный раз, когда мы использовали файловые группы, было время, когда на диске мало места, и нам пришлось создать новую группу файлов на другом шпинделе. Я уверен, что есть хорошие показатели производительности, почему это не идеально, но это было реальностью.
Ответ 6
среди других причин дополнительные файловые группы имеют смысл, если вы хотите разбить таблицу. и это имеет смысл, если есть много конкурирующих чтений с разнородными условиями этой таблицы. вы можете настроить каждый раздел так, чтобы он отражал одно из таких условий where-condition и находился на другом диске, тем самым отправляя каждый считываемый на другой диск, таким образом, параллельное чтение и меньше конфликтов.