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

Откуда:
Сообщений: 316
Добрый день!

Есть база 1С размером 700ГБ.
База достигла состояния когда её файл данных не вмещается на раздел,
можно ли в существующую базу, в одну primary файл-группу mssql добавить
дополнительный файл на другом томе и сбалансировать данные между двумя файлами в базе?
12 окт 12, 14:22    [13308560]     Ответить | Цитировать Сообщить модератору
 Re: балансировать данные таблиц по файлам данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Доьавляете файл такого же размера и перестраивваете индексы.
12 окт 12, 14:23    [13308573]     Ответить | Цитировать Сообщить модератору
 Re: балансировать данные таблиц по файлам данных  [new]
aux3
Member

Откуда:
Сообщений: 316
Гавриленко Сергей Алексеевич,

1. Сергей, добавлю файл без создания дополнительной файловой группы-это допустимо же?

2. Таблицы с кластерным индексом после перестроения индекса автоматически попадут в новый файл (sql server будет пытаться сбалансировать объём данных поровну), не переедут таблицы без кластерного индекса?
12 окт 12, 14:31    [13308654]     Ответить | Цитировать Сообщить модератору
 Re: балансировать данные таблиц по файлам данных  [new]
aux3
Member

Откуда:
Сообщений: 316
aux3,

также в этом случае (два файла в одной файловой группе) не будет возможности вручную заставить перейти таблицу или индекс из одного файла в друой?
12 окт 12, 14:33    [13308667]     Ответить | Цитировать Сообщить модератору
 Re: балансировать данные таблиц по файлам данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
aux3
Гавриленко Сергей Алексеевич,

1. Сергей, добавлю файл без создания дополнительной файловой группы-это допустимо же?

2. Таблицы с кластерным индексом после перестроения индекса автоматически попадут в новый файл (sql server будет пытаться сбалансировать объём данных поровну), не переедут таблицы без кластерного индекса?

1. Файловая группа на то и группа, чтобы в ней могло быть более одного файла.
2. С таблицами без кластерных индексов сложнее. Или переливать, или сначала сделать кластерный, потом его убить.
12 окт 12, 14:34    [13308680]     Ответить | Цитировать Сообщить модератору
 Re: балансировать данные таблиц по файлам данных  [new]
aux3
Member

Откуда:
Сообщений: 316
Гавриленко Сергей Алексеевич,

Сергей, подскажите по какому принципу sql server в данном случае,
будет заполнять файлы, если они имеют не одинаковый размер,
все 5 таблиц базы имеют один индекс - кластерный

1й файл, существующий:
700 ГБ из 5 кластерных таблиц, большая размером 400 ГБ, 4 останльные по 30 ГБ (файл заполнен на 74,28%)

2й файл новый
размер 300 ГБ, полностью пустой


над базой выполняется перестроение всех индексов
12 окт 12, 15:20    [13309050]     Ответить | Цитировать Сообщить модератору
 Re: балансировать данные таблиц по файлам данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
aux3
также в этом случае (два файла в одной файловой группе) не будет возможности вручную заставить перейти таблицу или индекс из одного файла в друой?
Да, это вам и нужно: "сбалансировать данные между двумя файлами в базе"

Если вы не хотите "сбалансировать", а хотите сами разместить объекты по файлам, тогда нужно сделать новую файловую группу.
aux3
Сергей, подскажите по какому принципу sql server в данном случае,
будет заполнять файлы, если они имеют не одинаковый разме
Пропорционально свободному месту в файлах.

Для равномерного распределения данных по файлам нужнро их сделать одинакового размера, а уже потом перестраивать индексы.
Если нужно решить проблему:
aux3
База достигла состояния когда её файл данных не вмещается на раздел,
то можно просто создать новый файл достаточного размера, и данные будут потихоньку в процессе работы перетекать туда.

Полезно ещё при этом отключить автоприращение старого файла.
12 окт 12, 15:33    [13309161]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: балансировать данные таблиц по файлам данных  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
У меня из под sharepoint была база в одном файле mdf ~300Гб(хотя по тем же бест практикам настаивают на не превышении ею размера в 100Гб) и почти без пустого пространства внутри. После создания двух пустых ndf файлов на двух других логических дисках перестроение индексов почти ничего не давало(ну оно-то видно и верно, сплошные бинарники внутри), только по 300Мб переехало в каждый из новых ndf файлов. Решилось всё с помощью
USE [WSS_Content_15000]
GO
DBCC SHRINKFILE (N'WSS_Content_15000' , EMPTYFILE)
GO
8 ноя 14, 17:57    [16816514]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить