Автоматическое обновление избыточных / денормализованных данных в SQL Server

Используйте высокий уровень избыточных денормализованных данных в моих проектах БД для повышения производительности. Я часто храню данные, которые обычно нужно объединить или вычислить. Например, если у меня есть таблица User и таблица Task , Я бы сохранил Имя пользователя и UserDisplayName избыточно в каждой записи Задачи . Другим примером этого является хранение агрегатов, таких как сохранение TaskCount в таблице User .

  • User
    • UserID
    • Username
    • UserDisplayName
    • TaskCount
  • Задача
    • TaskID
    • TaskName
    • UserID
    • UserName
    • UserDisplayName

Это отлично подходит для повышения производительности, поскольку приложение имеет гораздо больше операций чтения, чем операции вставки, обновления или удаления, и поскольку некоторые такие значения, как Имя пользователя меняются редко. Однако большой недостаток заключается в том, что целостность необходимо обеспечивать с помощью кода приложения или триггеров. Это может быть очень обременительным для обновлений.

Мой вопрос: можно ли это сделать автоматически в SQL Server 2005/2010 ... возможно, через постоянный / постоянный просмотр. Кто-нибудь порекомендовал бы другое возможное решение или технологию. Я слышал, что СУБД на основе документов, такие как CouchDB и MongoDB, могут более эффективно обрабатывать денормализованные данные.

9
задан JasonSmith 25 January 2011 в 03:28
поделиться