TarunKumarSusarapu Ответов: 2

Как снизить нагрузку на сервер при загрузке панели мониторинга


Привет,

Я создал приложение On dashboard с помощью devexpress и MVC.

На загрузку приборной панели уходит почти 10 минут.

Поэтому я создал извлечения данных для сжатия источника данных sql и назначил его источнику данных dashboard.

При обновлении панели мониторинга я написал один метод в global.asax.cs.

На мой сервер поступает 22 записи лакхов..

При извлечении этих записей это занимает больше времени.

Как повысить производительность сайта за счет снижения нагрузки на сервер?

Здесь я использую java-скрипт.

Пожалуйста, предложите мне решение.

Спасибо.

Что я уже пробовал:

protected void UpdateExtract(string dashboardId)
        {
            try
            {
                using (Dashboard newDashboard = new Dashboard())
                {
                    using(Dashboard Dashboard1=new Dashboard())
                    {
                        newDashboard.LoadFromXml(Server.MapPath(string.Format(@"~/App_Data/Dashboards/{0}.xml", dashboardId)));
                        Dashboard1.LoadFromXml(Server.MapPath(string.Format(@"~/App_Data/Dashboards/SQL/{0}.xml", dashboardId)));
                        var dataSour = Dashboard1.DataSources.OfType<DashboardSqlDataSource>().ToArray();
                        //DashboardSqlDataSource extractDataSource = new DashboardSqlDataSource();
                        foreach (DashboardSqlDataSource datr in dataSour)
                        {
                            datr.Fill();
                        }
                        var dataSources = newDashboard.DataSources.OfType<DashboardExtractDataSource>().ToArray();
                        foreach (DashboardExtractDataSource dataSource in dataSources)
                        {
                            dataSource.ExtractSourceOptions.DataSource = dataSour[0];
                            dataSource.UpdateExtractFile();
                        }
                    }
                  
                }
            }
            catch (Exception Ex) { }
        }

F-ES Sitecore

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

2 Ответов

Рейтинг:
2

TarunKumarSusarapu

Привет,

Я хочу создать службу windows для обновления извлечения данных ежедневно или ежечасно.

Не могли бы вы подсказать мне, как это осуществить?

Во время загрузки вызов службы windows может занять некоторое время, и она не будет показывать точные данные.

Как я могу передать этот метод в свою службу?

Спасибо.


Рейтинг:
1

AnvilRanger

Вы загружаете более 2,2 миллиона строк данных из XML-файла. Я могу только представить себе размер этих XML-файлов. Не говоря уже о загрузке их в память и рендеринге пользовательского интерфейса. Как сказал F-ES, подумайте о том, как пользователь будет смотреть и использовать эти данные. Человеческий глаз и разум могут обрабатывать только такое количество данных в данный момент времени. Загружайте данные небольшими порциями, используйте пейджинг, возвращайтесь к разговору с пользователями. Если они скажут вам, что им нужны все 2,2 миллиона строк данных, загруженных одновременно, то на 99% уверены, что им не нужны все строки, загруженные одновременно.

Кроме того, если у вас есть доступ к источнику данных, не используйте XML-файлы, если это возможно. Считывание непосредственно с БД.


0x01AA

"загрузить их в память "и разобрать... В 5