|
Как сделать шринк 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С уже вызывает дикий рост лог-файла даже в симпл-моде
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |