Работа DML без регистрации - SQL Server - PullRequest
0 голосов
/ 03 октября 2010

Можно ли как-нибудь выполнить операцию DML, не регистрируя ее в файле журнала?

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

Ответы [ 2 ]

4 голосов
/ 03 октября 2010

Нет. Никогда. Не возможно.

Каждая операция регистрируется по причине: что, если она потерпит неудачу на полпути? Сбои сервера? и т. д.

В итоге: A, C и D в КИСЛОТА

Если вы не хотите этого, тогда я бы действительно подумал об использовании альтернатив NoSQL без ACID.

0 голосов
/ 03 октября 2010

SQL Server всегда будет записывать вставку в файл журнала.Эта информация необходима для восстановления базы данных в согласованном состоянии при перезагрузке сервера.

Вы можете изменить влияние ведения журнала, выбрав модель восстановления:

alter database YourDb set recovery { FULL | BULK_LOGGED | SIMPLE } 

В простом режиме SQLСервер регистрирует только запущенные транзакции и начинает повторно использовать части журнала, которые больше не нужны.В простом режиме файл журнала обычно остается небольшим.

Если вы хотите избавиться от журналов после операции вставки, вы можете использовать:

alter database YourDb set recovery simple with no_wait
dbcc shrinkfile(YourDbLog, 1)
alter database YourDb set recovery <<old model here>>

Обратите внимание, что это избавляет от все журналы.Вы можете использовать восстановление только последней полной резервной копии после выполнения этой команды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...