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

Откуда:
Сообщений: 34
Есть база данных Base 1177185,13 МБ
в свойствах бд написано доступное место 213037,16 МБ

Что пробовал, сжать логи, сжать файлы, https://msdn.microsoft.com/ru-ru/library/ms190488.aspx тоже пробовал, но место не освобождается.
Цель раньше свободное место было меньше 10 мб и при необходимости оно забирала из файловой системы место. Подскажите пожалуйста.
4 авг 16, 10:37    [19496864]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Saykos
Member

Откуда: SPB
Сообщений: 17
Viliput,
а какая модель восстановления БД? если FULL, то делается ли резервирование?
4 авг 16, 10:43    [19496905]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Viliput
Member

Откуда:
Сообщений: 34
Saykos, спасибо за то, что отозвались помочь. Я не особо силен в ms sql, данный сервер тестовый, резервная копия не делается, что было сделано перед этим, загружали картинки сразу в два поля, но потом я понял, что подход к решению проблемы не верный т.к. во творое поле надо было грузить уменьшенные картинки (превью), т.к. места не хватало, я прошелся по полю превью UPDATE и записал минимум информации, что бы освободить место. Место освободилось, но как отобрать это место у бд в файловую систему никак не пойму. google and yandex мне пока не помог :(
4 авг 16, 11:02    [19497084]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Viliput
Saykos, спасибо за то, что отозвались помочь.
Так вы на вопрос ответьте. Не просто так же его задали, что бы поболтать :-)
От ответа зависит, что делать дальше.
4 авг 16, 11:09    [19497149]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Viliput
Member

Откуда:
Сообщений: 34
Не дописалось, да FULL, резервирование не делается ...
4 авг 16, 11:29    [19497372]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
В SIMPLE ставьте либо бекап лога делайте
4 авг 16, 11:31    [19497406]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Viliput
Member

Откуда:
Сообщений: 34
Да, добавилось мне еще 50 гб, но еще 160 так же свободно, есть ли еще мысли ?
4 авг 16, 11:40    [19497498]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
SELECT
	  s.[file_id]
	, file_group = d.name
	, s.name
	, d.is_default
	, size = CAST(s.size * 8. / 1024 AS DECIMAL(18,2))
	, space_used = CAST(t.space_used * 8. / 1024 AS DECIMAL(18,2))
	, free_space = CAST((s.size - t.space_used) * 8. / 1024 AS DECIMAL(18,2))
	, used_percent = CAST(t.space_used * 100. / s.size AS DECIMAL(18,2))
	, s.max_size
	, s.growth
	, s.is_percent_growth
FROM sys.database_files s
LEFT JOIN sys.data_spaces d on d.data_space_id = s.data_space_id
CROSS APPLY (
	SELECT space_used = FILEPROPERTY(s.name, 'SpaceUsed')
) t

что запрос возвращает? То уже мутно понимаю что Вы хотите... и что есть по факту.
4 авг 16, 11:47    [19497578]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Viliput
Member

Откуда:
Сообщений: 34
1 PRIMARY BASE_DB 1 377837.56 224711.56 153126.00 59.47 -1 128 0
2 NULL BASE_DB_log NULL 738849.88 4090.91 734758.97 0.55 268435456 10 1
4 авг 16, 11:51    [19497621]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Viliput
Member

Откуда:
Сообщений: 34
Цель: оставить бд доступное место в бд 1 мб, остальное все отдать файловой системе.
4 авг 16, 11:52    [19497631]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Тогда делайте шринк для лога и файла данных.
4 авг 16, 11:56    [19497661]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Viliput
Цель: оставить бд доступное место в бд 1 мб, остальное все отдать файловой системе.
Лучше освободите место в лог-файле. Там больше всего свободно.
А то замедлится работа базы, если 1 мб оставите.
4 авг 16, 12:55    [19498189]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Viliput
Member

Откуда:
Сообщений: 34
Странно, шринк уменьшил базу, а место доступное так же осталось ...
4 авг 16, 13:08    [19498303]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Viliput
Странно, шринк уменьшил базу, а место доступное так же осталось ...
"шринк уменьшил базу" - то есть запрос стал возвращать другие цифры? какие?
4 авг 16, 13:31    [19498535]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Viliput
Member

Откуда:
Сообщений: 34
1 PRIMARY base_DB 1 299498.75 224629.00 74869.75 75.00 -1 128 0
2 NULL base_DB_log NULL 57.25 3.53 53.72 6.17 268435456 10 1
4 авг 16, 13:58    [19498808]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Было
file_idfile_groupnameis_defaultsizespace_usedfree_spaceused_percentmax_sizegrowthis_percent_growth
1PRIMARYBASE_DB1377837.56224711.56153126.0059.47-11280
2NULLBASE_DB_logNULL738849.884090.91734758.970.55268435456101

Стало
file_idfile_groupnameis_defaultsizespace_usedfree_spaceused_percentmax_sizegrowthis_percent_growth
1PRIMARYbase_DB 1 299498.75 224629.0074869.7575.00 -1 1280
2NULL base_DB_logNULL 57.25 3.53 53.72 6.17 268435456101

Хватит уже уменьшать, иначе замедлится всё.
Уменьшили занимаемое место в несколько раз, куда уже.
4 авг 16, 17:22    [19500755]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
alexeyvg
Было
file_idfile_groupnameis_defaultsizespace_usedfree_spaceused_percentmax_sizegrowthis_percent_growth
1PRIMARYBASE_DB1377837.56224711.56153126.0059.47-11280
2NULLBASE_DB_logNULL738849.884090.91734758.970.55268435456101

Стало
file_idfile_groupnameis_defaultsizespace_usedfree_spaceused_percentmax_sizegrowthis_percent_growth
1PRIMARYbase_DB 1 299498.75 224629.0074869.7575.00 -1 1280
2NULL base_DB_logNULL 57.25 3.53 53.72 6.17 268435456101

Хватит уже уменьшать, иначе замедлится всё.
Уменьшили занимаемое место в несколько раз, куда уже.
Если без этого никак, то делайте шринк с реорганайзом в цикле, порциями.
4 авг 16, 17:23    [19500760]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Viliput
Member

Откуда:
Сообщений: 34
Я хотел не бд уменьшить, а то - что описывается как доступное место
4 авг 16, 19:28    [19501500]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Viliput
Я хотел не бд уменьшить, а то - что описывается как доступное место
Непонятно.
Доступное место на диске, что ли? Или доступное место в файле БД?
4 авг 16, 22:13    [19502095]     Ответить | Цитировать Сообщить модератору
 Re: Освободить лишнее место в ms sql 2008 r2  [new]
Владислав Колосов
Member

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

Если у вас длина записи, к примеру 5000 байт, вы на страницу две не поместите. получите свободное место более 40% при любом раскладе. Так у Вас будет заполнена база полупустыми страницами.
5 авг 16, 11:19    [19504196]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить