ОК, здесь идет. Я не гуру базы данных или администратор. На самом деле, помимо некоторой случайной настройки индекса / запроса, я не слишком часто копаюсь в базах данных. Одна из вещей, которая часто ускользает от меня - это журнал транзакций SQL Server. Я знаю, для чего он нужен, что он содержит и как он работает (по крайней мере, концептуально), но я думаю, что не понимаю , почему SQL Server, похоже, так привязан к журналам транзакций .
Вот первый вопрос . Поправьте меня, если я ошибаюсь, но мне кажется, что по умолчанию журналы транзакций будут просто содержать всю историю всех изменений в базе данных. Есть два признака того, что это действительно так. Когда я создаю новую базу данных, максимальный размер ее журнала устанавливается на «неограниченный рост». Вторая причина заключается в том, что я часто имел дело с крошечными базами данных с огромными журналами транзакций, которые нельзя было уменьшить независимо от того, что я делал. Кажется, это так странно, я не могу поверить, что это правда. Зачем мне вообще нужна вся история по умолчанию? Все, что меня волнует, - это последняя версия данных в согласованном состоянии. Что ж, я подозреваю, что на это могут быть веские причины, но в некоторых случаях это можно назвать дополнительным вариантом.
Мой второй вопрос Почему так сложно избавиться от журнала переходов ? Это только у меня так или нет прямого способа сделать это? Совсем недавно я пытался избавиться от 100 МБ + журнала базы данных объемом 5 МБ, и самым простым способом, который я нашел, было отключение базы данных, удаление журнала и повторное присоединение его снова (и даже этот SQL-сервер немного жаловался). Я попробовал команду shrink со всеми возможными вариантами, которые я смог найти, но я смог сжать только до 50%. База данных не использовалась (нет активных соединений), и я, честно говоря, не заботился о каких-либо прошлых переходах вообще. Я заметил, что, возможно, есть и другие «способы», как это сделать; некоторые, включающие резервное копирование и восстановление.
Я старательно пытался прочитать документацию MSDN и узнать что-то еще о переходах, но примерно через 15 минут, когда мне хотелось ходить по грязи в кругах, я сдался. Я знаю, что для администраторов баз данных и гуру мои вопросы будут звучать глупо. Я ценю любые отзывы.
Редактировать: После первых ответов я понял, что, возможно, я недостаточно ясен. Я знаю, как работает журнал транзакций во время транзакций, и почему это важно, и что его можно использовать в целях резервного копирования. Я думаю, что хотел бы спросить больше с точки зрения разработчика. Большую часть времени я имею дело с подготовкой / тестированием временных баз данных, которые не нуждаются в резервном копировании, и которые никто не использует, кроме меня, и я часто испытываю необходимость передавать их, и наличие огромного журнала переходов является ненужным неудобством в этой ситуации. .