|   |   | 
| 
 | Как сделать шринк Data файла в sql 2008 | ☑ | ||
|---|---|---|---|---|
| 0
    
        max1c2011 14.10.11✎ 16:01 | 
        не делался шринк лога.
  Перевел из Full в Simple модель. Сделал шринк. Лог образался, а data - нет. Кто в курсе - как обрезать data файл? | |||
| 1
    
        ДенисЧ 14.10.11✎ 16:02 | 
        правой кнопкой по базе и сжать датабазу.     | |||
| 2
    
        Ёпрст гуру 14.10.11✎ 16:02 | 
        бекап-потом шринк-наслаждайся     | |||
| 3
    
        Господин ПЖ 14.10.11✎ 16:02 | 
        а кто сказал что он обрежется...     | |||
| 4
    
        krbIso 14.10.11✎ 16:03 | 
        Если там есть что резать, то так же как и лог     | |||
| 5
    
        упс 14.10.11✎ 16:04 | 
        (0) если очень надо, то сначала перерведи в симпл, сделай rebuild index для всех таблиц, потом шринкуй. Переводить в симпл - чтобы лог во время ребилда индексов не разросся. 
  Но если не было массовых удалений данных - эффекта будет ноль целых хрен десятых | |||
| 6
    
        max1c2011 14.10.11✎ 16:07 | 
        (2) пробовал! не помогло!
  Пишет свободно 45% | |||
| 7
    
        Ёпрст гуру 14.10.11✎ 16:08 | 
        (6) не верю.     | |||
| 8
    
        ДенисЧ 14.10.11✎ 16:08 | 
        (5)"сделай rebuild index для всех таблиц, потом шринкуй"
  Вредный совет. Если только для сжатия. | |||
| 9
    
        упс 14.10.11✎ 16:08 | 
        (5) во я прогнал... последовательно:
  DBCC SHRINKFILE('имя файла данных', NOTRUNCATE, 0) DBCC SHRINKFILE('имя файла данных', TRUNCATEONLY, 0) | |||
| 10
    
        упс 14.10.11✎ 16:09 | 
        (8) почему это ребилд индекс вредный совет? вот (9) - вредный совет, но сделает как раз то, что хочет автор :)     | |||
| 11
    
        ДенисЧ 14.10.11✎ 16:14 | 
        (10) сжатие после ребилда - вредный совет.     | |||
| 12
    
        max1c2011 14.10.11✎ 16:16 | 
        (5)а перевод в симпл - это симпл модель имеется ввиду?
  И почему в (9) написано сначала NOTRUNCATE, а потом TRUNCATEONLY почему такой порядок | |||
| 13
    
        smitru 14.10.11✎ 16:17 | 
        (11) чем?     | |||
| 14
    
        упс 14.10.11✎ 16:18 | 
        (11) шринк сам по себе вредный. Вариант с ребилдом максимально сожмет файл. Второй вариант будет немного быстрее и немного менее "качественным"     | |||
| 15
    
        smitru 14.10.11✎ 16:20 | 
        (14) "Вариант с ребилдом максимально сожмет файл"
  Ребилд никогда не сжимает это раз, во-вторых под ребилд нужно место и поэтому часто разрастается лог-файл | |||
| 16
    
        max1c2011 14.10.11✎ 16:21 | 
        (14) ответь на (12)     | |||
| 17
    
        упс 14.10.11✎ 16:22 | 
        (15) а шринк после ребилда сожмет файл? а то, что при ребилде индекс будет перестроен заново и будет максимально компактным, что приведет к увеличению свободных страниц, которые сможет "откусить" шринк - это ничего? это раз.
  Если база будет в симпл-моде лог файл сильно не разрастется, ибо ребилд относится к минимально протоколируемым операциям. Которые в симпл-моде, как ни странно, протоколируется именно минимально. | |||
| 18
    
        упс 14.10.11✎ 16:24 | 
        (16) http://msdn.microsoft.com/ru-ru/library/ms189493.aspx
  NOTRUNCATE Перемещает распределенные страницы из конца файла на место нераспределенных страниц в начале файла с параметром target_percent или без него. Свободное место в конце файла операционной системе не возвращается, и физический размер файла не изменяется. Следовательно, если указан аргумент NOTRUNCATE, файл сжимается незначительно. Аргумент NOTRUNCATE применим только к файлам данных. На файлы журнала он не влияет. TRUNCATEONLY Освобождает все свободное пространство в конце файла операционной системе, но не перемещает страницы внутри файла. Файл данных сокращается только до последнего выделенного экстента. Аргумент target_size не обрабатывается, если указан аргумент TRUNCATEONLY. Аргумент TRUNCATEONLY применим только к файлам данных. | |||
| 19
    
        max1c2011 14.10.11✎ 16:25 | 
        (18)СПАСИБО!     | |||
| 20
    
        smitru 14.10.11✎ 16:26 | 
        (17) "Если база будет в симпл-моде лог файл сильно не разрастется, ибо ребилд относится к минимально протоколируемым операциям. "
  Чушь.. в симпл-моде лог-файл разрастается офигительно при балк-операциях | |||
| 21
    
        упс 14.10.11✎ 16:32 | 
        (20) вероятно это зависит от степени кривизны рук.     | |||
| 22
    
        max1c2011 14.10.11✎ 16:34 | 
        а подскажите, тупой вопрос, плох скул знаю..
  КАК переиндексировать все таблицы? Т.е. есть ли команда одна или в цикле? | |||
| 23
    
        ДенисЧ 14.10.11✎ 16:37 | 
        (22) в цикле     | |||
| 24
    
        smitru 14.10.11✎ 16:37 | 
        (21) причём тут "кривизна рук"? Это делает сам сиквел "без спроса"
  (22) делаешь "план обслуживания" xерез SQL Managment Studio | |||
| 25
    
        ДенисЧ 14.10.11✎ 16:38 | 
        вот как это делает 1с в 77
  SET NOCOUNT ON DECLARE @TableName char(32) 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
    
        упс 14.10.11✎ 16:43 | 
        (24) при том что хрен его знает как вы там и что у себя делаете. При балк операциях лог растет очень-очень мало. А учитывая, что модель восстановления будет не балк-логгед, а симпл, то оооочень маленькая вероятность того, что лог вырастет сильно.
  http://blogs.msdn.com/b/sqlserverfaq/archive/2011/01/07/using-bulk-logged-recovery-model-for-bulk-operations-will-reduce-the-size-of-transaction-log-backups-myths-and-truths.aspx Для примера. В фулл-моде 40 мб, в балк-логгед 3 мб. Практически на порядок меньше. Ясен пень, что база там маленькая, но пример показателен. Лог вырастет не больше чем на размер самой большой таблицы в базе (и то - это в самом худшем случае) | |||
| 27
    
        smitru 14.10.11✎ 16:46 | 
        (26) я говорю про базы SQL работающие под 1Совскими базами.. И при установленном симпл-режиме при размерах самих баз 20-30 Гб - лог-файлу улетают по 50Гб влёгкую
  ЗЫ.. Но теоретиГГам этого не понять :-) | |||
| 28
    
        упс 14.10.11✎ 16:54 | 
        (27) в симпл-моде лог 50 гб? омфг, читайте (21). Только без слова "вероятно".     | |||
| 29
    
        упс 14.10.11✎ 16:55 | 
        (28) "для базы 30 гиг в симпл-моде лог" и далее по тексту     | |||
| 30
    
        Господин ПЖ 14.10.11✎ 16:59 | 
        (28) причем тут кривизна рук... все зависит от выполнения checkpoint-ов на базе...     | |||
| 31
    
        упс 14.10.11✎ 17:15 | 
        и при каких условиях чекпойнты могут не выполняться своевременно? у пользователя есть только один параметр для модификации - recovery interval, который может быть коряво выстроен. Остальные причины вызова чекпойнта не могут быть перепределены.     | |||
| 32
    
        Господин ПЖ 14.10.11✎ 17:19 | 
        (31) длииииииииииииииииииная транзакция     | |||
| 33
    
        упс 14.10.11✎ 17:36 | 
        (32) а, ну если в длиииииииииинных транзакциях виноваты не кривые руки, то да, конечно, все дело в чекпойнтах     | |||
| 34
    
        Господин ПЖ 14.10.11✎ 17:47 | 
        еще вариант - есть репликация, идет накопление данных     | |||
| 35
    
        Господин ПЖ 14.10.11✎ 17:56 | 
        но это уже не к чекпоинтам, это вообще вариант - "почему растет база".     | |||
| 36
    
        smitru 14.10.11✎ 20:32 | 
        (35) зачем репликация? Даже выполнение реструктуризации базы средствами 1С уже вызывает дикий рост лог-файла даже в симпл-моде     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |