Как сделать шринк Data файла в sql 2008 #574784


#0 by max1c2011
не делался шринк лога. Перевел из Full в Simple модель. Сделал шринк. Лог образался, а data - нет. Кто в курсе - как обрезать data файл?
#1 by ДенисЧ
правой кнопкой по базе и сжать датабазу.
#2 by Ёпрст
бекап-потом шринк-наслаждайся
#3 by Господин ПЖ
а кто сказал что он обрежется...
#4 by krbIso
Если там есть что резать, то так же как и лог
#5 by упс
если очень надо, то сначала перерведи в симпл, сделай rebuild index для всех таблиц, потом шринкуй. Переводить в симпл - чтобы лог во время ребилда индексов не разросся. Но если не было массовых удалений данных - эффекта будет ноль целых хрен десятых
#6 by max1c2011
пробовал! не помогло! Пишет свободно 45%
#7 by Ёпрст
не верю.
#8 by ДенисЧ
"сделай rebuild index для всех таблиц, потом шринкуй" Вредный совет. Если только для сжатия.
#9 by упс
во я прогнал... последовательно: DBCC SHRINKFILE('имя файла данных', NOTRUNCATE, 0) DBCC SHRINKFILE('имя файла данных', TRUNCATEONLY, 0)
#10 by упс
почему это ребилд индекс вредный совет? вот - вредный совет, но сделает как раз то, что хочет автор :)
#11 by ДенисЧ
сжатие после ребилда - вредный совет.
#12 by max1c2011
а перевод в симпл - это симпл модель имеется ввиду? И почему в написано сначала NOTRUNCATE, а потом TRUNCATEONLY почему такой порядок
#13 by smitru
чем?
#14 by упс
шринк сам по себе вредный. Вариант с ребилдом максимально сожмет файл. Второй вариант будет немного быстрее и немного менее "качественным"
#15 by smitru
"Вариант с ребилдом максимально сожмет файл" Ребилд никогда не сжимает это раз, во-вторых под ребилд нужно место и поэтому часто разрастается лог-файл
#16 by max1c2011
ответь на
#17 by упс
а шринк после ребилда сожмет файл? а то, что при ребилде индекс будет перестроен заново и будет максимально компактным, что приведет к увеличению свободных страниц, которые сможет "откусить" шринк - это ничего? это раз. Если база будет в симпл-моде лог файл сильно не разрастется, ибо ребилд относится к минимально протоколируемым операциям. Которые в симпл-моде, как ни странно, протоколируется именно минимально.
#18 by упс
NOTRUNCATE Перемещает распределенные страницы из конца файла на место нераспределенных страниц в начале файла с параметром target_percent или без него. Свободное место в конце файла операционной системе не возвращается, и физический размер файла не изменяется. Следовательно, если указан аргумент NOTRUNCATE, файл сжимается незначительно. Аргумент NOTRUNCATE применим только к файлам данных. На файлы журнала он не влияет. TRUNCATEONLY Освобождает все свободное пространство в конце файла операционной системе, но не перемещает страницы внутри файла. Файл данных сокращается только до последнего выделенного экстента. Аргумент target_size не обрабатывается, если указан аргумент TRUNCATEONLY. Аргумент TRUNCATEONLY применим только к файлам данных.
#19 by max1c2011
СПАСИБО!
#20 by smitru
"Если база будет в симпл-моде лог файл сильно не разрастется, ибо ребилд относится к минимально протоколируемым операциям. " Чушь.. в симпл-моде лог-файл разрастается офигительно при балк-операциях
#21 by упс
вероятно это зависит от степени кривизны рук.
#22 by max1c2011
а подскажите, тупой вопрос, плох скул знаю.. КАК переиндексировать все таблицы? Т.е. есть ли команда одна или в цикле?
#23 by ДенисЧ
в цикле
#24 by smitru
причём тут "кривизна рук"? Это делает сам сиквел "без спроса" делаешь "план обслуживания" xерез SQL Managment Studio
#25 by ДенисЧ
вот как это делает 1с в 77  SET NOCOUNT ON  DECLARE @TableName char  DECLARE SysCur CURSOR FOR SELECT name FROM sysobjects WHERE type='U'  OPEN SysCur  FETCH NEXT FROM SysCur INTO @TableName  WHILE @@FETCH_STATUS=0 BEGIN      DBCC DBREINDEX(@TableName)      FETCH NEXT FROM SysCur INTO @TableName  END  CLOSE SysCur  DEALLOCATE SysCur
#26 by упс
при том что хрен его знает как вы там и что у себя делаете. При балк операциях лог растет очень-очень мало. А учитывая, что модель восстановления будет не балк-логгед, а симпл, то оооочень маленькая вероятность того, что лог вырастет сильно. Для примера. В фулл-моде 40 мб, в балк-логгед 3 мб. Практически на порядок меньше. Ясен пень, что база там маленькая, но пример показателен. Лог вырастет не больше чем на размер самой большой таблицы в базе (и то - это в самом худшем случае)
#27 by smitru
я говорю про базы SQL работающие под 1Совскими базами.. И при установленном симпл-режиме при размерах самих баз 20-30 Гб - лог-файлу улетают по 50Гб влёгкую ЗЫ.. Но теоретиГГам этого не понять :-)
#28 by упс
в симпл-моде лог 50 гб? омфг, читайте . Только без слова "вероятно".
#29 by упс
"для базы 30 гиг в симпл-моде лог" и далее по тексту
#30 by Господин ПЖ
причем тут кривизна рук... все зависит от выполнения checkpoint-ов на базе...
#31 by упс
и при каких условиях чекпойнты могут не выполняться своевременно? у пользователя есть только один параметр для модификации - recovery interval, который может быть коряво выстроен. Остальные причины вызова чекпойнта не могут быть перепределены.
#32 by Господин ПЖ
длииииииииииииииииииная транзакция
#33 by упс
а, ну если в длиииииииииинных транзакциях виноваты не кривые руки, то да, конечно, все дело в чекпойнтах
#34 by Господин ПЖ
еще вариант - есть репликация, идет накопление данных
#35 by Господин ПЖ
но это уже не к чекпоинтам, это вообще вариант - "почему растет база".
#36 by smitru
зачем репликация? Даже выполнение реструктуризации базы средствами 1С уже вызывает дикий рост лог-файла даже в симпл-моде
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С