Консультация № 143064
04.09.2008, 16:19
0.00 руб.
0 4 1
Здравствуйте господа эксперты!!! Возможно ли, а если возможно то как, таблицы SQL Server 2005, находящиеся в файле *.mdf распределить по файлам данных, то есть в файле *.mdf оставить структуру, а сами данные вынести в другие файлы *.ndf??? Спасибо.

Обсуждение

Неизвестный
04.09.2008, 19:30
общий
это ответ
Здравствуйте, Демин Евгений Анатольевич!

Первичные файловые группы

В первичную файловую группу входит первичный файл данных и все прочие файлы, не назначенные специально в другие файловые группы. Все страницы для системных таблиц размещаются в первичной файловой группе.

Пользовательские файловые группы

К пользовательским файловым группам относятся все файловые группы, которые задаются с помощью ключевого слова FILEGROUP в инструкции CREATE DATABASE или ALTER DATABASE.

Файлы журналов не могут входить в состав файловых групп. Управление пространством журнала отделено от управления пространством данных.

Файл не может входить в состав нескольких файловых групп. Таблицы, индексы и данные больших объектов могут быть ассоциированы с указанной файловой группой. В этом случае все их страницы будут размещены внутри файловой группы; либо таблицы и индексы могут быть секционированы. Данные секционированных таблиц и индексов разделяются на блоки, каждый из которых может быть помещен в отдельную файловую группу базы данных. Дополнительные сведения о секционированных таблицах и индексах см. в разделе Секционированные таблицы и индексы.

В каждой базе данных одна файловая группа назначается файловой группой по умолчанию. Если при создании таблицы или индекса файловая группа не указывается, предполагается, что все страницы будут распределяться из файловой группы по умолчанию. В каждый момент времени лишь одна файловая группа может быть файловой группой по умолчанию. Элементы фиксированной роли базы данных db_owner могут присваивать той или иной файловой группе статус файловой группы по умолчанию. Если файловая группа по умолчанию не указана, в качестве таковой выступает первичная файловая группа.



В. Создание базы данных, в которой указаны несколько файлов данных и журналов транзакций
Следующий пример создает базу данных Archive, имеющую 3 файла с данными объемом по 100-MB каждый и два файла журнала транзакций по 100-MB. Первичный файл является первым файлом в списке и явно задан ключевым словом PRIMARY. Файлы журналов транзакций заданы следующими ключевыми словами LOG ON. Следует обратить внимание на расширения, используемые для файлов в параметре FILENAME: расширение .mdf используется для первичных файлов данных, .ndf используется для вторичных файлов данных, а .ldf используется для файлов журналов транзакций.

Копировать код
USE master;
GO
IF DB_ID (N'Archive') IS NOT NULL
DROP DATABASE Archive;
GO
-- Get the SQL Server data path
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
FROM master.sys.master_files
WHERE database_id = 1 AND file_id = 1);

-- execute the CREATE DATABASE statement
EXECUTE ('CREATE DATABASE Archive
ON
PRIMARY
(NAME = Arch1,
FILENAME = '''+ @data_path + 'archdat1.mdf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch2,
FILENAME = '''+ @data_path + 'archdat2.ndf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch3,
FILENAME = '''+ @data_path + 'archdat3.ndf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
LOG ON
(NAME = Archlog1,
FILENAME = '''+ @data_path + 'archlog1.ldf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
(NAME = Archlog2,
FILENAME = '''+ @data_path + 'archlog2.ldf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)'
);
GO


Неизвестный
05.09.2008, 08:00
общий
Переместить таблицу в новую файловую группу у меня получается только через menegement studio изменением desing таблицы.
В Alter tabl в справке указано что можно изменить расположение в другой файловой группе указав move to [filegroup_name] но у меня не получилось.
Неизвестный
05.09.2008, 08:09
общий
вот как раз то что нужно... можно чуть подробней - я имею в виду последовательность операций...
Неизвестный
05.09.2008, 08:51
общий
1. Открываем SQL management studio.
2.Кликаем правой кн. мышки на нужной таблице и выбираем Desing.
3. В окне properties таблицы выбираем свойство filegroup or partition scheme name и выбирам нужную файловую группу.
Еще раз напоминаю что файловый группа(ы) должны быть созданы до выполнения этой операции.
Файловые группы создаются через открытие свойств базы данных и добавление их на вкладке Fiels.
Форма ответа