Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
12 / 13 / 5
Регистрация: 21.08.2012
Сообщений: 240

Экстремальное увеличение размера файла журнала при удалении записей

18.05.2020, 08:19. Показов 6484. Ответов 28

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
При удалении записей из одной таблицы файл журнала очень сильно увеличивается в размерах, пока не займёт всё свободное место на диске. После этого операция удаления прекращается с ошибкой.
Размер базы - 2.1 ГБ.
В таблице, из которой удаляются записи, содержится 15 млн записей. Вместе с индексами она занимает примерно 1 ГБ (т.е. половину от общего размера базы). Удалить необходимо 13 млн записей. На диске, на котором расположена база и журнал свободно 17 ГБ. Файл журнала на момент возникновения ошибки имеет примерно такой же размер - 17 ГБ.
Много раз делал подобную операцию, всегда проходила без проблем (на этом же ПК и с таким же размером свободного места).
Пришлось удалять по частям.
Вопрос - по каким причинам размер журнала может превысить размер базы в 8 раз? И что можно сделать в такой ситуации (кроме удаления меньшими порциями)?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.05.2020, 08:19
Ответы с готовыми решениями:

Как уменьшить увеличение размера журнала базы?
Добрый день! Вопрос следующий - в ходе выполнения хранимой процедуры на MS сервере 2008 создается таблица, в которую помещаются записи из...

При удалении учащихся из журнала удаляет все связанные записи с ним в остальных таблицах
При удалении учащихся из журнала удаляет все связанные записи с ним в остальных таблицах. В задании написано что это должен быть триггер....

Увеличение размера файла
У меня есть на входе файл. Он открывается только для чтения (содержимое НЕ должно изменяться). Для дальнейшей работы необходимо, чтобы...

28
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
24.05.2020, 13:35
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от СергейР Посмотреть сообщение
У данного эффекта высокая повторяемость
Похоже, что только у вас. У себя повторить на 9 серверах не смог.

Можно профайлером отследить, когда увеличивается файл ЖТ.
Для этого создайте трассу с событиями SQL:StmtStarting, SQL:StmtCompleted, SP:StmtStarting, SP:StmtCompleted, Log File Auto Grow и столбцами EventClass, TextData, DatabaseName, SPID, StartTime, FileName, IntegerData, Duration

Подготовьте данные для удаления и ужмите файл ЖТ.
Запустите трассировку, затем удаление. Желательно не иметь при этом другой пользовательской активности.

В результате увидите в процессе выполнения каких инструкций (*:StmtStarting и *:StmtCompleted) увеличивается файл ЖТ (FileName) и на сколько (IntegerData) и в пределах ли одной сессии (SPID)
0
12 / 13 / 5
Регистрация: 21.08.2012
Сообщений: 240
24.05.2020, 16:08  [ТС]
Цитата Сообщение от invm Посмотреть сообщение
Похоже, что только у вас. У себя повторить на 9 серверах не смог.
Или дело в самих данных. Но там, вроде, только числа и даты. Уточню завтра на работе...

Цитата Сообщение от invm Посмотреть сообщение
Можно профайлером отследить, когда увеличивается файл ЖТ.
Тоже завтра попробую...
0
12 / 13 / 5
Регистрация: 21.08.2012
Сообщений: 240
26.05.2020, 13:33  [ТС]
Цитата Сообщение от invm Посмотреть сообщение
В результате увидите в процессе выполнения каких инструкций (*:StmtStarting и *:StmtCompleted) увеличивается файл ЖТ (FileName) и на сколько (IntegerData) и в пределах ли одной сессии (SPID)
Получил 90 записей, из них 85 для события "Log File Auto Grow". Все 90 записей имеют один SPID.
IntegerData = 25 600 (шаг прироста ЖТ в настройках задан 200 Мб).
Если я правильно понимаю, 25 600 * 8 кБ (размер страницы) * 85 строк ~ 17 ГБ (примерно соответствует размеру файла ЖТ).
Количество удалённых записей из трассировки соответствует количеству обработанных строк.
Что ещё можно выяснить?
Миниатюры
Экстремальное увеличение размера файла журнала при удалении записей   Экстремальное увеличение размера файла журнала при удалении записей  
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
26.05.2020, 13:50
Забавная фигня...
Если возможно, выложите подготовленный к удалению бекап БД на какой-нибудь файлообменник.
0
12 / 13 / 5
Регистрация: 21.08.2012
Сообщений: 240
26.05.2020, 14:32  [ТС]
Цитата Сообщение от invm Посмотреть сообщение
Если возможно, выложите подготовленный к удалению бекап БД на какой-нибудь файлообменник.
Отправил в личку.
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
26.05.2020, 15:25
СергейР, да, забрал.
Еще покажите результат select @@version этого сервера.
0
12 / 13 / 5
Регистрация: 21.08.2012
Сообщений: 240
26.05.2020, 15:52  [ТС]
invm,
Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64)
Jun 17 2016 19:14:09
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.3 <X64> (Build 17134: )
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
28.05.2020, 19:39
Лучший ответ Сообщение было отмечено СергейР как решение

Решение

СергейР, в общем, я упустил один важный момент - место в ЖТ выделяется еще и под откат транзакции.
Если посмотреть сколько скушано с учетом этого, то получится примерно 5 Гб на удаление и примерно 11 Гб на его откат.
1
12 / 13 / 5
Регистрация: 21.08.2012
Сообщений: 240
29.05.2020, 07:26  [ТС]
Понятно, спасибо. Буду иметь ввиду, что журнал транзакций может расти таким образом...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2020, 07:26
Помогаю со студенческими работами здесь

Увеличение размера файла .exe
Здравствуйте! Возник вопрос о том, как увеличить размер файла, без его изменения иконки, пробовал команду: copy /B Исходный.EXE+Второй...

ошибка при удалении записей из бд
при удалении данных выскакивает ошибка: Удаление или изменение записи невозможно. В таблице &quot;Аудитории&quot; имеются связанные записи....

Упорядочить идентификаторы при удалении записей
Всем привет. Проблема такая, в таблице есть уникальный идентификатор записи 1,2,3, ..... и т.д. При удалении какой нить записи напр 2...

Ошибка при удалении повторяющихся записей
Добрый день! есть табличка Id_zavtag zav_number tag 1 5 5 2 ...

Исключительная ситуация при удалении записей
Доброго времени суток, возникла проблема при создании исключительной ситуации. Опишу проблему поподробнее, Есть таблица из которой будут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru