Лучшая практика для разработки таблиц для поддержки более быстрого обновления одного поля с использованием sql server

Я работаю над системой Workflow. У меня одна таблица задач и поле статуса. Значением статуса может быть Новое, Готово, Обработка, Ошибка, Прерывание, Готово.

У меня есть около 7 процессов, которые будут запускаться в зависимости от ситуации, чтобы изменить значение статуса задачи. В большинстве случаев каждый процесс будет работать со своим собственным набором данных и каждый раз обрабатывает до 5000 записей. Но я все еще вижу тупик, если данные достигают около 2 миллионов записей. Я проверяю с помощью SQL Profiler, похоже, что какой-то ресурс страницы связан. Я плохо разбираюсь в настройке производительности sql-сервера и не очень хорошо в этом разбираюсь.

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

Возможны некоторые варианты:

  1. Создавать разделенные таблицы в зависимости от статуса.
  2. Создайте основную таблицу со статическими данными и поддерживаемой таблицей на основе статуса

Есть ли какие-нибудь хорошие практики для такого рода ситуаций?

Спасибо!

6
задан John Liu 19 October 2011 в 00:53
поделиться