2013-10-09 2 views
0

Есть 2 службы .NET, которые используют 2 базы данных SQL Server. В настоящее время я использую SQL Express, поэтому максимальный размер базы данных является проблемой.Автоматическое управление размером базы данных Sql Server

Когда размер приближается к пределу 10 ГБ (или некоторому пределу записи), я хотел бы автоматически удалить старейшее количество записей Х, чтобы освободить место.

Это не производственная среда, и я ДЕЙСТВИТЕЛЬНО не нуждаюсь в старых данных, я просто хочу сохранить данные «свежими».

Должно ли это быть сделано на уровне обслуживания? Я могу изменить свои услуги, чтобы периодически проверять пространство и выполнять ручную «очистку» (будь то удаление, архив и т. Д.). Я не уверен, как это сделать на уровне SQL.

Благодаря

+2

Я лично сделал бы это с обслуживанием. Или иметь запланированное приложение, которое выполняется один раз в день и удаляет любые записи старше 30 дней. Сколько записей мы принимаем? Возможно, вам нужно также исправить из значений ID? (может потребоваться некоторое время!) – musefan

ответ

1

Поскольку вы используете SQL Express, вам нужно будет сделать это на уровне обслуживания в определенном расписании. Сначала вам нужно удалить строки из таблицы (таблиц), из которой вы хотите очистить данные. Что-то вроде:

delete BigOleTable where LoggedDate < dateadd(yy,-1,getdate()) 

, который избавится от материалов старше года.

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

0

Вы можете создать работу, которая делает это или лучше использовать SSIS (см это: http://technet.microsoft.com/en-us/library/ms181153%28v=sql.105%29.aspx).

Вы можете использовать эту процедуру http://technet.microsoft.com/en-us/library/ms188776.aspx, чтобы запросить используемое пространство, и если оно превышает значение, вы можете удалить данные.

+2

Вы не можете использовать SSIS или агент SQL Server с SQL Server Express. – JodyT

+0

Да, вы правы, я не замечаю версию сервера sql –

Смежные вопросы