Об импорте данных, их последующей обработке и данных. Улучшение системных процессов

У меня есть веб-приложение ASP.Net 3.5. И веб-сайт, и SQL-сервер размещаются на same server .

Вся система основана на Numbers / Data, пользователи должны import массивные данные в систему (например, используя таблицу Excel), система должна показывать вычисленные цифры on screen а также создавать reports для пользователей.

В настоящее время на этом сервере работает приложение «Импорт-сервер», вставка / обновление данных в raw data tables , затем вычисление данных и их вставка / обновление в таблицу post-processed . Все эти процессы задействованы в one thread (может быть в одной хранимой процедуре).

Недостатком этого проекта является то, что импортное приложение costs много системного ресурса и занимает long time . Он locked таблицу (например, TRANSACTION) и затронул действие пользователя на веб-сайте. Кроме того, вычисленные данные трудно отследить и легко просчитать.

Я попытался создать временную таблицу ( View ) в системе для обработки данных по запросу вместо последующей обработки в расчетную таблицу. Но я обнаружил, что время процесса (время просмотра и времени хранимой процедуры SQL) слишком длинное, чтобы быть принятым (5 минут или более, некоторые запросы, например, join...between или apportion годовых данных в день занимает наибольшее время обработки).

Надеюсь, что некоторые опытные парни могут дать мне некоторые советы (или общие стратегии) ​​о том, как улучшить дизайн / реализацию системы во всех аспектах, спасибо.

Все аспекты включают в себя: многосерверы, СУБД, серверные приложения, веб-службы, оптимизацию SQL Server, компоненты SQL, весь дизайн и архитектуру системы и т. Д.

Поэтому, если я правильно прочитал вопрос, у вас было это:

  • Система с импортными импортными данными + пост-обработка. Два набора таблиц.
  • Веб-приложение страдает от производительности, потому что пост-обработка необработанных данных занимает много времени и вводит блокировки в таблицах после обработки, где веб-приложение считывает данные.

Из-за этого вы теперь экспериментируете с установкой, где:

  • Исходные данные импортируются в один набор таблиц.
  • Вместо постобработки и хранения обработанных данных вы выполняете пост-обработку «по требованию» в представлении.
  • Это не дает удовлетворительной производительности либо

Как насчет того, чтобы попробовать альтернативную версию исходной настройки? Вы можете попробовать следующее:

  • Сделайте три набора таблиц
  • Один набор для импорта необработанных данных
  • Один набор для хранения результатов обработки исходных данных
  • И один набор для хранения копии обработанных данных.

Этот последний набор таблиц будет использоваться для создания отчетов. Используя эту настройку, «импорт данных» будет состоять из трех шагов:

  • Импорт сырых данных
  • Постобработка
  • Обновление обработанных данных в «живых» таблицах.

Предположительно, копирование обработанных данных из одного набора таблиц в другие может быть сделано достаточно эффективным. Таким образом, влияние импорта данных на веб-приложение может контролироваться, поскольку пост-обработка не будет напрямую касаться «живых» таблиц.

Вы можете попробовать следующее:

Сначала импортируйте данные в таблицу необработанных данных.

Затем выполняйте вычисления в коде вместо того, чтобы делать в хранимой процедуре, и это занимает много времени, делая это в коде позади, чтобы сохранить ресурс базы данных.

Как только вы закончите с вычислением, вставьте вычисленное значение в вычисленную таблицу.

Постарайтесь использовать код как можно больше, а не базу данных, используйте базу данных только в том случае, если что-то не может быть сделано в коде.

Я вижу, что соединение занимает некоторое время, вы можете подтвердить, что у вас есть внешний ключ. Также, если вы покажете мне SQL, я могу помочь.

  • Миграция базы данных в существующей большой базе данных
  • Как увидеть блокировки SQL SQL и заблокированные таблицы
  • Пустое значение, вставленное в sql-сервер на asp.net, с обязательным полем проверки подлинности
  • Как изменить формат даты DataBinder.Eval в asp.net?
  • ASP.NET 5 Первыми кодами первого этапа EF7 являются столбцы в алфавитном порядке по умолчанию
  • вставка данных в SQL Server не работает, но нет сообщения об ошибке для показа
  • Каков наилучший способ предотвратить ввод неправильного слова в модуле обсуждения на моем сайте
  • Возврат хранимой процедуры ASP.NET SQL Server
  • Объедините две хранимые процедуры для выполнения отдельных запросов базы данных SQL Server
  • Невозможно автоматическое создание ASPNETDB.MDF - Visual Web Developer Express 2008 / SQL Express 2008
  • Редактирование строк подключения web.config в производстве
  • Давайте будем гением компьютера.