Насколько большим становится файл журнала после обновления каждого поля таблицы базы данных? - PullRequest
1 голос
/ 19 февраля 2011

Мой общий вопрос: скажем, у вас есть база данных SQL Server 2005 размером 20 ГБ и пустой файл журнала.Если вы запустите серию обновлений, которые будут касаться каждой таблицы и каждой строки ровно по одному разу, будет ли файл журнала расти до того же размера, что и база данных?Или это будет зависеть от других факторов?

Я задаю этот вопрос из-за обновления базы данных, которое я выполняю.У меня есть база данных, используемая некоторыми проприетарными программами.Обновления сделаны для каждой таблицы и каждого поля.Программное обеспечение не имеет подробного вывода, только флажок «не выполнено» / «выполнено».Поскольку отсутствует описательный вывод, я пытаюсь выяснить, как определить, близок ли он к концу.

Итак, может ли файл журнала иметь тот же размер, что и база данных, когда все затронуто?Или файл журнала содержит различную информацию, которая не зависит от размера базы данных таким образом?

Ответы [ 2 ]

5 голосов
/ 19 февраля 2011

Как правило, размер журнала, создаваемого для любого обновления, примерно в 1,5 раза больше размера обновления.Таким образом, если вы обновляете данные объемом 20 ГБ, вы генерируете журнал объемом 30 ГБ.

Но есть несколько вещей, на которые следует обратить внимание:

  1. Размер создаваемого журнала не обязательнопереводится в размер файла журнала.В модели восстановления SIMPLE используемый файл журнала может автоматически перерабатываться, как только транзакция завершается (я опускаю некоторые детали для краткости), поэтому размер журнала 30 ГБ может уместиться в файл 1 ГБ путем непрерывной переработки использованного журнала.В модели восстановления FULL и BULK журнал аналогичным образом перерабатывается при выполнении резервного копирования журнала базы данных.Поэтому, если вы не обновляете все в одной транзакции, ваш журнал должен перерабатываться, а не расти.

  2. Некоторые операции могут быть минимально зарегистрированы.TRUNCATE, INSERT BULK - типичные примеры.Минимальное ведение журнала занимает небольшую долю от нормального ведения журнала.

Прямо сейчас вы должны смотреть на используемый процент журнала (DBCC SQLPERF(logspace)) и также отслеживать, если какие-либо события роста журнала происходят.

0 голосов
/ 19 февраля 2011

Не тот ответ, который вы ищете, но я думаю, что он вряд ли будет иметь какое-либо значимое отношение к размеру базы данныхПросто подожди.:)

...