Я сейчас меняю сервер базы данных в своей компании с Windows 2000 / Sql Server 2000 на Windows 2003 R2 / Sql Server 2005. Он содержит 30 баз данных, каждая из которых имеет размер около 7 ГБ, но одна из них - 30 ГБ. И теперь мне интересно, стоит ли мне использовать возможность использовать файловые группы в этой базе данных. Но я никогда не использовал его раньше, и я не очень хорошо знаю содержимое базы данных. Но это экономическая система, поэтому я думаю, что за последние 8 лет производства она содержит много исторической информации, предназначенной только для чтения.
Может ли кто-нибудь дать мне несколько советов и подсказок, следует ли мне разделить это или нет? Сейчас у меня есть 2 отдельных диска, один для файлов журнала и один для баз данных.
Был бы признателен, если бы кто-нибудь мог дать мне какой-то вклад :)
Вы хотите разбить базу данных на несколько файловых групп или добавить несколько файлов в существующую основную файловую группу?
В первом случае вам нужно будет переместить объект (таблицы, индексы) во вновь добавленную файловую группу, иначе она останется пустой. Это требует от вас очень хорошего понимания шаблонов использования указанных объектов, чтобы вы могли определить, какие объекты куда попадают. Преимущество после этого будет заключаться в том, что вы сможете распределять файловые группы по отдельным путям ввода-вывода (отдельные диски / LUN) в зависимости от способа доступа к ним. Еще одно преимущество заключается в том, что вы можете управлять резервным копированием / восстановлением с большей степенью детализации, позволяя выполнять восстановление по частям и позволяя создавать резервные копии отдельных файловых групп. Я бы сказал, что выделение файловых групп в базе данных - это дизайн время решение и для вас уже немного поздно.
Во втором случае вы просто добавляете больше файлов в ПЕРВИЧНУЮ файловую группу, чтобы распределить ввод-вывод на несколько дисков. Если вы на самом деле делать есть проблемы с вводом-выводом, и у вас действительно есть несколько путей ввода-вывода (т. е. отдельные диски / массивы / lun для размещения файлов), нет никакого преимущества при добавлении нескольких файлов. Вы можете столкнуться с советом, который рекомендует разделить базу данных на N файлов равного размера, где N - количество ядер ЦП, но этот совет устарел, поскольку SQL 2005/2008 справляется с конфликтом распределения SGAM / GAM намного лучше, чем SQL 2000, и больше не требуется раскол.
Судя по вашему описанию проблемы и окружающей среды, я, честно говоря, не вижу причин для разделения: вы не собираетесь создавать какой-либо замысловатый план восстановления, допускающий частичное восстановление (кроме того, это всего лишь 30 ГБ, что довольно мало), и в любом случае у вас есть только один диск, поэтому использование нескольких файлов не приносит пользы.
Вот информация о файловых группах. Они действительно улучшают производительность, только если вы размещаете их на разных дисках. Другое использование файловых групп - изолировать таблицы, доступные только для чтения, и иметь возможность создавать резервные копии только активных файловых групп.
Я не думаю, что вы получите большую производительность, если разделите свою базу данных на файловые группы, потому что у вас всего два выделенных диска, и вам уже нужен один для ваших транслогов.
Я бы не стал его разделять.