У нас есть приложение, которое принимает данные в реальном времени и вставляет их в базу данных.это онлайн в течение 4,5 часов в день.Мы вставляем данные по очереди в 17 таблиц.Пользователь в любой момент может запросить в любой таблице последние вторые данные и некоторые записи в истории ...
Обработка подачи и вставки выполняется с помощью консольного приложения C # ...
Обработка пользовательских запросов осуществляется через службу WCF ...
Мы выяснили, что вставка является нашим узким местом;большую часть времени занимает там.Мы потратили много времени, пытаясь точно настроить таблицы и значения, но результаты оказались неудовлетворительными
Если предположить, что у нас достаточно памяти, то как лучше вставлять данные в память вместо базы данных.В настоящее время мы используем таблицы данных, которые обновляются и вставляются каждую секунду. Наши коллеги предложили другую службу WCF вместо базы данных между обработчиком каналов и обработчиком пользовательских запросов WCF.Предполагается, что средний уровень WCF основан на TCP и хранит данные в своей собственной памяти.Можно сказать, что обработчик каналов может иметь дело с пользовательскими запросами, а не иметь промежуточный уровень между двумя процессами, но мы хотим разделить вещи так, чтобы в случае сбоя обработчика каналов мы все еще могли предоставить пользователю текущие записи
Мы ограничены во времени, и мы хотим за короткое время перенести все в память.Плохо ли иметь WCF в середине двух процессов?Я знаю, что запросы добавляют некоторые накладные расходы, но все эти 3 процесса (обработчик каналов, в базе данных памяти (WCF), обработчик пользовательских запросов (WCF) будут на одной машине, и пропускная способность не будет такой большой)проблемы.
Пожалуйста, помогите!