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