Сильный рост БД на MS SQL

Инсталляция, обновления, нюансы БД, администрирование системы

Модератор: mike

Ответить
Аватара пользователя
Evchic
партнер
Сообщения: 88
Зарегистрирован: Пн, 17/09/2007 07:57
Имя Фамилия: Евгений Ильин
Откуда: Галактика ЮГ г.Ростов-на-Дону
Контактная информация:

Сильный рост БД на MS SQL

Сообщение Evchic »

Галактика 7,12 MS SQL 2000 SP 4

Наблюдается очень интенсивный и непонятный рост БД

БД была 170Гб из них 34Гб данные все остальное unused таблиц.
Путем переноса данных в новую файловую группу (созданиепереиндексацияудаление кластерного индекса для каждой таблице с переносом данных в новый файл)
получилось ее вернуть к нормальному состоянию т.е. 34Гб это цифра на 17/09/2007г

за 4 дня бд вновь выросла на 10Гб. в на картинке пример по одной таблице.
Кто-нибудь может предположить из-за чего может быть такой сильный рост БД. Как с этим бороться? Какие методы обслуживания БД можете предложить для ежедневногоеженедельногоежемесячного обслуживания БД, чтоб сдерживать ее в приемлемом состоянии.

P.S. Заранее благодарен за ответ!
Ситуация длится уже больше года.
В ТП кроме Shrink больше нечего предложить не могут, а он не подходит для решения проблем т.к. он более усугубляет ситуацию нарушая фрагментацию данные в нутри файла данных.
vadim
топ-софт
Сообщения: 197
Зарегистрирован: Чт, 06/09/2007 17:38
Имя Фамилия: Вадим Володько
Откуда: ТопСофт
Контактная информация:

Сообщение vadim »

Из приведенной таблицы видно, что с ростом числа записей все остальные цифры растут в общем-то почти пропорционально... В чем вопрос? Почему резерв не замедляет рост при росте числа записей? Видимо, нак устроен /настроен MS SQL...

Евгений, поскольку это особенность именно MS SQL, видимо Вы уже обращались в ТП майкрософт-а и задавали вопросы им? Каков был ответ?
Аватара пользователя
olkzv
топ-софт
Сообщения: 8
Зарегистрирован: Ср, 19/09/2007 14:38
Имя Фамилия: Ольга Кузива
Откуда: Галактика-Казахстан
Контактная информация:

Сообщение olkzv »

У нашего клиента тоже такое наблюдается.
Их админ сказал, что это MS SQL для часто используемых таблиц сам резервирует пространство. Причем не скупится.
Как с этим бороться и какими настройками можно регулировать - в этом вопрос.
mazneff
Сообщения: 7
Зарегистрирован: Пт, 07/09/2007 15:00
Имя Фамилия: Валерий Мазнев

Сообщение mazneff »

Это все описано в доке по MS SQL Server, было бы неплохо, что бы ее кто-нибудь читал.

При выделении страниц под данные у MS SQL Server есть такой параметр как Fill Factor, задается в %. Это какой % оставлять незаполненным. В момент интенсивных нагрузок, сервер БД вставляет данные в незаполненные страницы, уменьшая таким образом время обработки запросов по сравнению с тем, что если бы ему приходилось бить одну страницу на две. Особенно это актуально при балансировке индексов. Изменить этот параметр можно в настройке SQL Server-а
Аватара пользователя
Evchic
партнер
Сообщения: 88
Зарегистрирован: Пн, 17/09/2007 07:57
Имя Фамилия: Евгений Ильин
Откуда: Галактика ЮГ г.Ростов-на-Дону
Контактная информация:

Сообщение Evchic »

mazneff писал(а):Это все описано в доке по MS SQL Server, было бы неплохо, что бы ее кто-нибудь читал.

При выделении страниц под данные у MS SQL Server есть такой параметр как Fill Factor, задается в %. Это какой % оставлять незаполненным. В момент интенсивных нагрузок, сервер БД вставляет данные в незаполненные страницы, уменьшая таким образом время обработки запросов по сравнению с тем, что если бы ему приходилось бить одну страницу на две. Особенно это актуально при балансировке индексов. Изменить этот параметр можно в настройке SQL Server-а
Какой % Fill Factor Вы посоветуете использовать? В данный момент стоит по умолчанию!
vadim
топ-софт
Сообщения: 197
Зарегистрирован: Чт, 06/09/2007 17:38
Имя Фамилия: Вадим Володько
Откуда: ТопСофт
Контактная информация:

Сообщение vadim »

Евгений, думаю тут Вам могут подсказать сами пользователи (из своего опыта) либо сотрудники техподдержви майкрософт...
mazneff
Сообщения: 7
Зарегистрирован: Пт, 07/09/2007 15:00
Имя Фамилия: Валерий Мазнев

Сообщение mazneff »

Вопрос интересный.
По-хорошему, надо опять же обратиться к документации.
Я навскидку не помню, как он сам динамически вычисляет этот Fill Factor, исходя из каких параметров.
В любом случае Вы можете поэксперементировать с ним. Можно сделать копию основной БД, покрутить так и сяк. Посмотреть объемы получаемой БД и оценить как при этом меняется производительность.
Единственное, что надо понимать: после установки какого-то значения необходимо перестроить индексы.

В любом случае, это - специфические задачи администратора БД, а мы по сути являемся разработчиками.
Вроде похоже, но не совсем одно и то же. :-)
kroxa
топ-софт
Сообщения: 65
Зарегистрирован: Пт, 07/09/2007 11:57
Имя Фамилия: Александр Крахотко
Откуда: ТопСофт
Контактная информация:

Сообщение kroxa »

Evchic писал(а):Какой % Fill Factor Вы посоветуете использовать? В данный момент стоит по умолчанию!
:idea:
Воспользовавшись поиском в Google (строка запроса "MS SQL Fill Factor размеры БД"), можно найти найти объяснения работы этого параметра

на русском Правда о fill-factor в MS SQL Server

и на английском MSDN Fill Factor - http://msdn2.microsoft.com/en-us/librar ... L.80).aspx (скопировать ссылку вручную, т.к. форум отсекает скобки)
Вы можете определить fill factor в инструкции CREATE INDEX или когда Вы используете инструкцию CREATE TABLE phpbb_или ALTER TABLE для определения первичного ключа или уникального ограничения на таблицу, после чего SQL Server автоматически построит индекс, и установит первичные ключи и уникальные ограничения. Конечно, Вы также можете определить fill factor, используя Enterprise Manager, при создании индекса или добавлении ограничений к таблице. Если Вы не определяете явно значение fill-factor, SQL Server установит значение fill factor по умолчанию. Чтобы определить, какое было принято значение fill factor по умолчанию, Вы можете выполнить следующую команду:

Код: Выделить всё

// Вначале, нужно установить расширенный вывод конфигурационных значений:
EXEC sp_configure "show advanced options", 1
GO
RECONFIGURE
GO
// Затем, непосредственно смотрим значение по умолчанию "fill factor":
EXEC sp_configure "fill factor"
GO
// В завершение, возвращаем изменённое значение назад:
EXEC sp_configure "show advanced options", 0
GO
RECONFIGURE
GO
:shuffle:
serge
топ-софт
Сообщения: 1
Зарегистрирован: Пн, 08/10/2007 15:42
Имя Фамилия: Жолудь Сергей
Откуда: ТопСофт
Контактная информация:

Сообщение serge »

А есть ли подобный параметр для Oracle?
Просто база растет по 10 Гб/месяц.
Индескный файл 18 Гб, а процент его заполнение 10-15%.
Ответить