Как избежать взрыва журнала транзакций? - PullRequest
0 голосов
/ 06 ноября 2011

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

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

1 Ответ

1 голос
/ 06 ноября 2011

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

Усечение всегда минимально зарегистрировано. Так что да, усечь, а затем вставить будет работать. Другой вариант - создать новую таблицу с такой же структурой. Удалите старую таблицу, а затем переименуйте новую таблицу в имя старой таблицы.

Если вы хотите избежать вышеизложенного, вы можете исследовать «простую» модель восстановления (это имеет значение для восстановления по времени - поэтому будьте очень осторожны с этим, если у вас есть другие таблицы в этой же базе данных). Или вы можете создать новую базу данных, в которой будет только эта таблица, установить восстановление для этой БД на «простое». Простая модель восстановления поможет вам сохранить ваш t-log небольшим.

Наконец, если вам необходимо полное восстановление, а также нельзя использовать опции «усекать» или «отбрасывать» сверху, вы должны как минимум создавать резервные копии своего t-журнала через очень регулярные промежутки времени (в зависимости от того, насколько велик его рост и сколько места у вас есть).

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