Я работаю над технической архитектурой для интеграции контент-решений. Данные поставщика решений работают до миллионов строк и нормализуются до 3NF. Он обновляется по регулярному графику (скорее всего, ежедневно), и его данные делятся на очень узкий уровень атомарности.Нормализация базы данных и быстрый поиск
Мне нужно искать и запрашивать эти данные, и мой текущий наклон заключается в том, чтобы оставить только нормализованные данные и создать денормализованную базу данных из своих данных (OLAP в OLTP). «Передача» может быть специально построенной программой, которая может содержать необходимую бизнес-логику в дополнение к необработанной мощности копирования и запускаться по установленному расписанию по мере необходимости. Затем денормализованная база данных уменьшит атомарность и позволит эффективно выполнять поиск по ключевым словам и запросы. Я искал использование Lucene .NET для работы ключевого слова по денормализованной базе данных.
Итак, прежде чем я громко петь с холмов, что это путь вперед, мне хотелось получить экспертное мнение по этому поводу и что такое воспринимаемая «лучшая практика». Является ли метод, который я предложил, наилучшим образом, учитывая данные, которые мне будут предоставлены? Было высказано предположение, что, возможно, я мог бы использовать «поисковую систему» для поиска нормализованных данных. Это испугало меня, но поднял вопрос; какая поисковая система и как?
мнение, пламя, сквернословие и помощь оценили :)
У вас есть проблемы с поиском данных в нормализованной форме? Существуют базы данных _are_, которые могут извлечь выгоду из денормализации для поиска, но по моему опыту люди могут быстро предположить, что они имеют проблемы с производительностью. Кроме того, какие СУБД вы используете? –
Спасибо за ответ Ларри. Все это основано на MS SQL. Я могу заверить, что выполнение ключевых слов или полукоммерческих запросов по нормализованным данным занимает абсолютный возраст. Цивилизации пришли и ушли быстрее! – dooburt
Прежде чем идти таким образом, я бы дважды проверял все индексы, FK и, в конечном счете, отслеживал% процессор и% памяти. Недавно я нашел хороший и бесплатный диагностический инструмент: http://sqlcop.lessthandot.com/ –