Как правило, я бы сначала попытался создать отчет о транзакционной базе данных.
Убедитесь, что все индексы, которые вы добавляете для облегчения эффективной отчетности, все часто используются. Чем больше индексов вы добавите, тем ниже будет производительность при вставках и (если вы изменяете ключи) обновлений.
Когда вы заходите в базу данных отчетов, помните, что вы собираетесь туда только по нескольким причинам:
В конечном счете, первое, что нужно знать о базах данных, это то, что вы удаляете конфликт блокировки из базы данных OLTP. Поэтому, если ваша база данных отчетов является прямой копией той же базы данных, вы просто используете отложенные моментальные снимки, которые не будут мешать производственным транзакциям.
Далее, у вас может быть отдельная стратегия индексирования для поддержки сценариев использования отчетов. Эти дополнительные индексы можно использовать в базе данных отчетов, но они могут вызвать ненужные издержки в базе данных OLTP.
Теперь оба вышеперечисленных могут быть выполнены на одном и том же сервере (даже в одном и том же экземпляре в отдельной базе данных или даже просто в отдельной схеме) и все же увидеть преимущества. Когда процессор и ввод-вывод полностью привязаны, в этот момент вам определенно необходимо разместить их в совершенно отдельном блоке (или обновить свой отдельный блок).
Наконец, для максимальной гибкости отчетности вы денормализуете данные (обычно в многомерную модель или звездообразные схемы), так что база данных отчетов - это те же данные в другой модели. Отчеты о больших объемах данных (особенно агрегатов) чрезвычайно быстры в размерных моделях, потому что схемы «звезда» очень эффективны для этого. Это также эффективно для большого разнообразия запросов без большого количества повторной индексации или анализа для изменения индексов, потому что многомерная модель лучше подходит для непредвиденных моделей использования (старый запрос «ломать и резать в разные стороны»). Вы можете увидеть, что это своего рода мини-хранилище данных, где вы используете методы хранилища данных, но не обязательно реализуете полноценное хранилище данных. Кроме того, звездообразные схемы особенно удобны для пользователей, а словари данных гораздо проще и проще создавать для инструментов BI или инструментов отчетности из звездных схем. Вы можете сделать это на том же или другом боксе и т. Д., Как обсуждалось ранее.