Задача автоудаления базы данных - PullRequest
0 голосов
/ 10 января 2010

Я пытаюсь выяснить, как разработать свою базу данных. Например. в базе есть несколько записей:

альтернативный текст http://img109.imageshack.us/img109/2962/datax.png

Итак, если фактический DateTime на сервере 2010-01-09 12:12:12, запись №1 должна быть удалена.

ОК, но что, если в базе данных, например, 1.000.000 записей? Сервер должен искать в базе данных каждую секунду, чтобы проверить, какие строки должны быть удалены? Это совсем не эффективно.

Я совершенно новичок в Microsoft Server, поэтому буду благодарен за любую помощь

1 Ответ

1 голос
/ 10 января 2010

В SQL Server нет основанного на времени триггера. Поэтому вам придется реализовать это как задание или с помощью какого-либо другого запланированного механизма.

Скорее всего, вам потребуется индекс для столбца StartDate (дата окончания?), Чтобы вашему запросу на удаление не приходилось выполнять полное сканирование таблицы, чтобы найти данные, которые нужно удалить.


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

...