Сильный рост БД на MS SQL
Модератор: mike
- Evchic
- партнер
- Сообщения: 88
- Зарегистрирован: Пн, 17/09/2007 07:57
- Имя Фамилия: Евгений Ильин
- Откуда: Галактика ЮГ г.Ростов-на-Дону
- Контактная информация:
Сильный рост БД на MS SQL
Галактика 7,12 MS SQL 2000 SP 4
Наблюдается очень интенсивный и непонятный рост БД
БД была 170Гб из них 34Гб данные все остальное unused таблиц.
Путем переноса данных в новую файловую группу (созданиепереиндексацияудаление кластерного индекса для каждой таблице с переносом данных в новый файл)
получилось ее вернуть к нормальному состоянию т.е. 34Гб это цифра на 17/09/2007г
за 4 дня бд вновь выросла на 10Гб. в на картинке пример по одной таблице.
Кто-нибудь может предположить из-за чего может быть такой сильный рост БД. Как с этим бороться? Какие методы обслуживания БД можете предложить для ежедневногоеженедельногоежемесячного обслуживания БД, чтоб сдерживать ее в приемлемом состоянии.
P.S. Заранее благодарен за ответ!
Ситуация длится уже больше года.
В ТП кроме Shrink больше нечего предложить не могут, а он не подходит для решения проблем т.к. он более усугубляет ситуацию нарушая фрагментацию данные в нутри файла данных.
Наблюдается очень интенсивный и непонятный рост БД
БД была 170Гб из них 34Гб данные все остальное unused таблиц.
Путем переноса данных в новую файловую группу (созданиепереиндексацияудаление кластерного индекса для каждой таблице с переносом данных в новый файл)
получилось ее вернуть к нормальному состоянию т.е. 34Гб это цифра на 17/09/2007г
за 4 дня бд вновь выросла на 10Гб. в на картинке пример по одной таблице.
Кто-нибудь может предположить из-за чего может быть такой сильный рост БД. Как с этим бороться? Какие методы обслуживания БД можете предложить для ежедневногоеженедельногоежемесячного обслуживания БД, чтоб сдерживать ее в приемлемом состоянии.
P.S. Заранее благодарен за ответ!
Ситуация длится уже больше года.
В ТП кроме Shrink больше нечего предложить не могут, а он не подходит для решения проблем т.к. он более усугубляет ситуацию нарушая фрагментацию данные в нутри файла данных.
-
- топ-софт
- Сообщения: 197
- Зарегистрирован: Чт, 06/09/2007 17:38
- Имя Фамилия: Вадим Володько
- Откуда: ТопСофт
- Контактная информация:
Из приведенной таблицы видно, что с ростом числа записей все остальные цифры растут в общем-то почти пропорционально... В чем вопрос? Почему резерв не замедляет рост при росте числа записей? Видимо, нак устроен /настроен MS SQL...
Евгений, поскольку это особенность именно MS SQL, видимо Вы уже обращались в ТП майкрософт-а и задавали вопросы им? Каков был ответ?
Евгений, поскольку это особенность именно MS SQL, видимо Вы уже обращались в ТП майкрософт-а и задавали вопросы им? Каков был ответ?
Это все описано в доке по MS SQL Server, было бы неплохо, что бы ее кто-нибудь читал.
При выделении страниц под данные у MS SQL Server есть такой параметр как Fill Factor, задается в %. Это какой % оставлять незаполненным. В момент интенсивных нагрузок, сервер БД вставляет данные в незаполненные страницы, уменьшая таким образом время обработки запросов по сравнению с тем, что если бы ему приходилось бить одну страницу на две. Особенно это актуально при балансировке индексов. Изменить этот параметр можно в настройке SQL Server-а
При выделении страниц под данные у MS SQL Server есть такой параметр как Fill Factor, задается в %. Это какой % оставлять незаполненным. В момент интенсивных нагрузок, сервер БД вставляет данные в незаполненные страницы, уменьшая таким образом время обработки запросов по сравнению с тем, что если бы ему приходилось бить одну страницу на две. Особенно это актуально при балансировке индексов. Изменить этот параметр можно в настройке SQL Server-а
- Evchic
- партнер
- Сообщения: 88
- Зарегистрирован: Пн, 17/09/2007 07:57
- Имя Фамилия: Евгений Ильин
- Откуда: Галактика ЮГ г.Ростов-на-Дону
- Контактная информация:
Какой % Fill Factor Вы посоветуете использовать? В данный момент стоит по умолчанию!mazneff писал(а):Это все описано в доке по MS SQL Server, было бы неплохо, что бы ее кто-нибудь читал.
При выделении страниц под данные у MS SQL Server есть такой параметр как Fill Factor, задается в %. Это какой % оставлять незаполненным. В момент интенсивных нагрузок, сервер БД вставляет данные в незаполненные страницы, уменьшая таким образом время обработки запросов по сравнению с тем, что если бы ему приходилось бить одну страницу на две. Особенно это актуально при балансировке индексов. Изменить этот параметр можно в настройке SQL Server-а
Вопрос интересный.
По-хорошему, надо опять же обратиться к документации.
Я навскидку не помню, как он сам динамически вычисляет этот Fill Factor, исходя из каких параметров.
В любом случае Вы можете поэксперементировать с ним. Можно сделать копию основной БД, покрутить так и сяк. Посмотреть объемы получаемой БД и оценить как при этом меняется производительность.
Единственное, что надо понимать: после установки какого-то значения необходимо перестроить индексы.
В любом случае, это - специфические задачи администратора БД, а мы по сути являемся разработчиками.
Вроде похоже, но не совсем одно и то же.
По-хорошему, надо опять же обратиться к документации.
Я навскидку не помню, как он сам динамически вычисляет этот Fill Factor, исходя из каких параметров.
В любом случае Вы можете поэксперементировать с ним. Можно сделать копию основной БД, покрутить так и сяк. Посмотреть объемы получаемой БД и оценить как при этом меняется производительность.
Единственное, что надо понимать: после установки какого-то значения необходимо перестроить индексы.
В любом случае, это - специфические задачи администратора БД, а мы по сути являемся разработчиками.
Вроде похоже, но не совсем одно и то же.
-
- топ-софт
- Сообщения: 65
- Зарегистрирован: Пт, 07/09/2007 11:57
- Имя Фамилия: Александр Крахотко
- Откуда: ТопСофт
- Контактная информация:
Evchic писал(а):Какой % Fill Factor Вы посоветуете использовать? В данный момент стоит по умолчанию!
Воспользовавшись поиском в 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