В настоящее время я работаю над инструментом отчетности для данных, которые хранятся в базе данных MSSQL.База данных огромна, и поскольку она является производственной базой данных, и я не являюсь ее владельцем, я не могу расширять какие-либо функции (добавлять таблицы / функции и т. Д.).
Чтобы получить номера отчетов, я быМне нужно использовать дорогие запросы (курсоры) и в то же время я не хочу вызывать ненужную нагрузку на БД.Это также довольно сложные вещи, такие как анализ движения и использования инвентаря, а не просто сумма и количество.
Поэтому мой текущий подход - загружать данные небольшими порциями, используя одиночные запросы, загружать их в Коллекции и затем запускать паруитераций foreach для расчета отчетных данных.По сути, я перестраиваю базу данных в памяти, которую затем вычисляю.
В настоящее время у меня достаточно много кода (и объектов для сущностей в БД), и я начинаю думать, чтовозможно, было бы лучшим решением создать локальную упрощенную копию необходимых данных, например, с помощью отдельной SQLLite-DB.
Я также рассмотрел linq для объектов, но по сути мне все еще нужно создавать и заполнять объекты... А БД даже дала бы возможность просто создавать новые запросы для новых отчетов вместо их жесткого кодирования.С другой стороны, это может быть медленнее, чем делать все в коллекциях ...
Итак, вопрос (наконец): Как вы думаете, было бы лучше вручную скопировать упрощенную и сокращенную версиюданные в локальную базу данных или вы пошли бы с другими решениями?