Назад | Перейти на главную страницу

сокращение базы данных syslog sql

Я пытаюсь уменьшить базу данных SQL, используемую для мониторинга системного журнала. БД сейчас составляет около 43 ГБ, и я уверен, что не очищалась годами. Я недавно унаследовал эту БД, когда кто-то ушел, и я не уверен, как получить к ней доступ или очистить ее. Я попытался сделать стандартный SHRINK либо для базы данных, либо для файлов, и, похоже, он опустил его примерно до 40 ГБ, но в течение нескольких минут, когда новая запись регистрируется в БД, она немедленно возвращается к исходным 43 ГБ размер. Есть ли способ удалить данные старше определенного количества лет или месяцев? В настоящее время у нас нет администратора БД, и я просто пытаюсь сделать все, что в моих силах, чтобы освободить место в БД, в которой потенциально могут храниться старые данные.

изменить: MS Sql Server 2005

Будьте осторожны, так как это приведет к безвозвратному удалению данных из вашей базы данных!

Если вы действительно хотите удалить старые данные из базы данных и ваши даты находятся в столбце типа даты, вы можете сделать это с помощью команды SQL DELETE. Что-то вроде этого:

DELETE FROM <tablename> WHERE <datecolumn> < '01/01/2008';

Это приведет к удалению всех строк из таблицы с датой ранее 2008 года. Вам нужно будет заменить имя таблицы из схемы на <tablename> и столбец в этой таблице, содержащий дату входа для <datecolumn>.

Если столбец даты не является фактическим типом DATE, вам нужно будет выполнить некоторое преобразование, чтобы преобразовать его в дату.