Что вы делаете со своими старыми записями? - PullRequest
2 голосов
/ 09 февраля 2011

Многие приложения накапливают бинарную пыль - записи, которые накапливались с течением времени и никогда не увидят свет.Наше приложение ведет историю чата и отображает только такие записи за последние 5 дней.Является ли хорошей идеей через некоторое время запустить операцию очистки, которая перемещает эти старые записи в таблицу «истории».Таблица истории никогда не будет использоваться, она просто позволяет нам запускать внутреннюю статистику, в то время как (я полагаю) обеспечивая более высокую производительность для тех записей, которые остаются в основной таблице.

Кроме того, если мы создадим таблицу истории, тонужно ли нам копировать наши таблицы, или есть скрытая функция MS SQL, которая будет автоматически создавать «теневые таблицы».

Ответы [ 2 ]

1 голос
/ 09 февраля 2011

cyberkiwi верен в отношении "без магии", и его рекомендация подходит для простых данных. Когда данные сложны, архивирование становится сложным. Может оказаться, что вы хотите денормализовать данные при архивировании, чтобы затем вы могли удалить или изменить данные, на которые ссылались исходные строки.

1 голос
/ 09 февраля 2011

Не существует функции MS SQL, которая будет автоматически создавать такие теневые таблицы.Он подходит к разделению, но он действительно разделяет хранилище (быстрое / медленное), сохраняя данные в одной таблице.

Что вам нужно, так это прямой архив и очистка.Простая стратегия - это ночная задача:

  1. обновить статические таблицы поиска (на которые ссылается основная таблица)
  2. переместить записи с date < getdate()-6 в таблицу истории
  3. удалитьзаписи, которые были перемещены

Если в этой таблице есть ссылки на внешние ключи to другие таблицы, маловероятно, что эти таблицы нужно будет очистить, если они не слишком быстро растут (редко).С другой стороны, если в других таблицах есть FK к основному, это другой вопрос.В этом случае вам придется переместить всех зависимых потомков, затем первичных, а затем удалить в обратном порядке.

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