powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уменьшить размер mdf
21 сообщений из 21, страница 1 из 1
Уменьшить размер mdf
    #39658251
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиском пользовался. На подобные вопросы Гуру больше стебутся, чем по делу.
Поэтому конкретные вопросы, хотелось бы услышать конкретные ответы
Исходные данные: SQL Express 2008 r2.
1. Поддерживает ли этот сервер компрессию mdf? Если нет, то все остальные вопросы снимаются. И где про это написано, я не видел :(
2. Ужмется ли БД после удаления данных из таблиц? Собственно я это сделал, но ужать не вышло.
Откуда ноги растут - у клиента база достигает 10Гb. На нормальный сервак он тратится не хочет. Данные за прошлые года ему НЕ НУЖНЫ. Значит все это удаляем(delete from table1 where datefield < '20180101' - это примерно 2/3 всех записей), но база сильно не сжимается. так и остается больше 9 гигов
3. какой командой сжимать файл? Использовал ShrinkFile/ но что-то эффекта не увидел
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658255
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Что такое "компрессия mdf"?
2-3. Свободное место в файле данных освобождается командой shrink. Свободное место в страницах объектов освобождается с помощью ребилда этих объектов.
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658261
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич, компрессия mdf - когда данные удалили и файл данных ожидается, что тоже уменьшится
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658265
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minvaГавриленко Сергей Алексеевич, компрессия mdf - когда данные удалили и файл данных ожидается, что тоже уменьшится
просто так уменьшаться не будет, достаточно бессмысленная операция. SHRINK если очень хотите, как уже сказали
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658269
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minvaГавриленко Сергей Алексеевич, компрессия mdf - когда данные удалили и файл данных ожидается, что тоже уменьшитсяНет, MSSQL вашим фантазиям не соответствует. Так же не понятно, зачем вообще сжимать файл после удаления данных. Чтобы при добавлении его опять расширять?
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658270
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK, воооот.. В том то и дело, что удалил очень много, процентов 60 данных, а после шринка он ужался процентов на 5 только
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658271
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minvaПоиском пользовался. На подобные вопросы Гуру больше стебутся, чем по делу.
Поэтому конкретные вопросы, хотелось бы услышать конкретные ответыЕсли бы еще и вопросы были не только "конкретными", но и хоть немного корректными...Исходные данные: SQL Express 2008 r2.
1. Поддерживает ли этот сервер компрессию mdf? Если нет, то все остальные вопросы снимаются. И где про это написано, я не видел :(Если под "компрессией mdf" понимается изменение размеров файлов, то поддерживается всеми версиями.2. Ужмется ли БД после удаления данных из таблиц?С какого перепуга? Собственно я это сделал, но ужать не вышло.Разумеется. Откуда ноги растут - у клиента база достигает 10Гb. На нормальный сервак он тратится не хочет. Данные за прошлые года ему НЕ НУЖНЫ. Значит все это удаляем(delete from table1 where datefield < '20180101' - это примерно 2/3 всех записей), но база сильно не сжимается. так и остается больше 9 гиговИ зачем ей изменяться в размере? Чтобы сначала ужиматься, а потом по новой растягиваться, тратя на всё это время и ресурсы? Вы на чём, собственно, свои ожидания строите?3. какой командой сжимать файл? Использовал ShrinkFile/ но что-то эффекта не увиделНу так правильно надо пользоваться.
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658275
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Гавриленко Сергей Алексеевич, Чтобы при добавлении его опять расширять?

Так... Тогда куда смотреть. Значит файл у меня 9.5 гигов, что близко к границе SQL express.
Данные мы из mdf удалили на 2/3. Как узнать, столько свободных мегабайт осталось в этих 9.5 объема, куда будут писаться новые данные.
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658276
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minva>>Гавриленко Сергей Алексеевич, Чтобы при добавлении его опять расширять?

Так... Тогда куда смотреть. Значит файл у меня 9.5 гигов, что близко к границе SQL express.
Данные мы из mdf удалили на 2/3. Как узнать, столько свободных мегабайт осталось в этих 9.5 объема, куда будут писаться новые данные.
провая кнопочка на базе - свойства
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658278
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minva>>Гавриленко Сергей Алексеевич, Чтобы при добавлении его опять расширять?

Так... Тогда куда смотреть. Значит файл у меня 9.5 гигов, что близко к границе SQL express.
Данные мы из mdf удалили на 2/3. Как узнать, столько свободных мегабайт осталось в этих 9.5 объема, куда будут писаться новые данные.Начните со свойств базы в SSMS хотя бы.
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658282
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Sergey Sizov, Ну так правильно надо пользоваться.

так я для того и спрашиваю, чтоб правильно пользоваться. Тогда какой смысл этой команды?

А цель я озвучил выше. Надо знать, что сколько жить осталось на SQL Express, чтоб данные не перевалили за 10 Гигов
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658289
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.[/quot]Начните со свойств базы в SSMS хотя бы.[/quot]

Да. там тоже непонятно. Вот посмотрел свою первую попавшуюся базу. объем 4гига. доступное место 800 метров
Доступное место - это текущий свободный объем в пределах 4гигов? А дальше начнет нарастать?
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658290
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minva.Начните со свойств базы в SSMS хотя бы.[/quot]

Да. там тоже непонятно. Вот посмотрел свою первую попавшуюся базу. объем 4гига. доступное место 800 метров
Доступное место - это текущий свободный объем в пределах 4гигов? А дальше начнет нарастать?[/quot]
yep
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658291
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minva>Sergey Sizov, Ну так правильно надо пользоваться.

так я для того и спрашиваю, чтоб правильно пользоваться. Тогда какой смысл этой команды?Спрашиваете вы несколько другое.
А цель я озвучил выше. Надо знать, что сколько жить осталось на SQL Express, чтоб данные не перевалили за 10 ГиговДля получения этих знаний сжатие файла совершенно не нужно. Про свойства базу же не единожды написано.
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39658372
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minvaTaPaK, воооот.. В том то и дело, что удалил очень много, процентов 60 данных, а после шринка он ужался процентов на 5 только
откуда удалял, из кластерных таблиц или из куч? если из куч, то удалять надо было с таблоком, иначе хоть данные и удаляются, страницы не высвобождаются, а остаются allocated to heap. соответственно, шринк их не трогает.

если же удаляли из кластерного индекса, но он НЕ по дате, то поудалялось из рандомных страниц, а не полностью страницы. а шринк не трогает страницы, где хоть что-то еще есть. соответственно, вас спасет ребилд.
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39676019
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123 вас спасет ребилд.

Это что?

Поясню суть, зачем это надо, цитирую клиента: "у руководства периодически случаются приступы паранойи и они требуют обрубить все данные о продажах, кроме последнего квартала например (тоже самое они делают и с базами 1С). Когда мы месяц назад в очередной раз обрезали базу то её объём не особо сильно уменьшился, таким образом сейчас уже спустя всего месяц у нас на горизонте уже опять маячит цифра 10Гб"
Зачем это делает клиент, вопрос второй. но в базе за квартал 100% не может набраться 10 гб данных.

>Начните со свойств базы в SSMS хотя бы
Начал. Размер 9.5 Gb, доступное место 0,5 Mb
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39676022
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minva,
авторРазмер 9.5 Gb, доступное место 0,5 Mb
теперь узнайте сколько лог и сколько база
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39676035
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minvaYasha123 вас спасет ребилд.

Это что? REBUILD - DDL команда по перестроению таблиц и индексов.

Если таблица-куча, то делаете вначале ребилд таблицы, затем - всех её индексов.
Если таблица-кластер, то достаточно сделать ребилд таблицы (либо - ребилд её кластерного индекса)
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39676038
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щукина Анна,

авторЕсли таблица-куча, то делаете вначале ребилд таблицы, затем - всех её индексов.
от скуки вселенской?
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39676199
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minva,

Вы же прибили данные, а не таблицы. Сжатие базы не подразумевает реорганизацию таблиц и это верно, т.к. Ваши намерения относительно таблиц не ясны - будете изменять их содержимое или нет в дальнейшем.
...
Рейтинг: 0 / 0
Уменьшить размер mdf
    #39676278
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, вопрос закрыт. Помог такой скрипт. Клиенты в одной из таблиц хранили огромный объем блобов, такое её использование не предполагалось (и по статистике этой фичей в программе почти никто не пользовался), поэтому она не чистилась при усечении старых данных. Тупо про неё забыли :) Поэтому и были странности с объемом казалось бы пустой базы

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
DBCC UPDATEUSAGE (0)
create table #t(name varchar(255), row varchar(255), reserved varchar(255), data varchar(255), inxex_size varchar(255), unused varchar(255))

insert into #t
exec sp_msforeachtable N'exec sp_spaceused ''?''' 

select * from #t
order by (cast(Replace(data, ' KB', '') as float)) desc
drop table #t
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уменьшить размер mdf
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]