Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Распределение записи данных по нескольким файлам БД в одной файловой группе  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Доброго времени суток, собственно вопрос в теме. Интересует по каким критериям определяет ms sql в какой файл БД писать информацию, если на дисках, на которых лежат файлы места достаточно. Файлы БД находятся в одной файловой группе.

СУБД: Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
28 фев 12, 11:05    [12162113]     Ответить | Цитировать Сообщить модератору
 Re: Распределение записи данных по нескольким файлам БД в одной файловой группе  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
По наличию свободного места в файлах данных.
28 фев 12, 11:08    [12162127]     Ответить | Цитировать Сообщить модератору
 Re: Распределение записи данных по нескольким файлам БД в одной файловой группе  [new]
Glory
Member

Откуда:
Сообщений: 104751
BOL - Using Files and Filegroups - File and Filegroup Fill Strategy
28 фев 12, 11:11    [12162150]     Ответить | Цитировать Сообщить модератору
 Re: Распределение записи данных по нескольким файлам БД в одной файловой группе  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Почитал в BOLе может кому пригодится:


В файловых группах для каждого файла используется стратегия пропорционального заполнения. При записи данных в файловую группу компонент SQL Server Database Engine записывает в каждый файл количество данных, пропорциональное свободному пространству этого файла, вместо записи всех данных в первый файл до его заполнения. Затем запись производится в следующий файл. Например, если в файле f1 свободно 100 МБ, а в файле f2 — 200 МБ, то в файл f1 записывается одна часть данных, а в файл f2 — две части. Таким образом, оба файла будут заполнены примерно в одно и то же время, и достигается простейшее распределение данных между хранилищами.

Как только заполняются все файлы в группе, компонент Database Engine автоматически расширяет по одному файлу за раз, перебирая их циклически и позволяя записывать больше данных, при условии, что разрешено автоматическое увеличение базы данных. Например, файловая группа состоит из трех файлов, для всех разрешено автоматическое увеличение. Когда свободное пространство во всех файлах группы закончится, будет расширен только первый файл. Когда заполнится первый файл и в файловую группу снова нельзя будет записывать новые данные, будет расширен второй файл. Когда заполнится второй файл и в файловую группу опять нельзя будет записывать новые данные, будет расширен третий файл. Когда заполнится третий файл и в файловую группу нельзя будет записывать новые данные, будет снова расширен первый файл и т. д.


Спасибо за ответы.
28 фев 12, 11:21    [12162213]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить