Я работаю над приложением ASP.NET C#, и я ищу, чтобы улучшить производительность действия.Увеличьте производительность вызова ajax, который получает строку json
У меня есть кнопка, когда пользователь нажимает на нее. Я посылаю вызов Ajax для получения данных из базы данных и отображения данных.
Схема базы данных, как это:
У меня есть список стран, каждая страна имеет несколько серий (Контингент, масло, вода ....) и каждая серия имеет несколько лет (каждый год имеет значение). Таким образом, в основном это эволюция серии за годы своей страны.
Чтобы получить данные, я использую AJAX для вызова веб-сервиса. Вебсервис принимает в качестве ввода название серии, и мне нужно как выход данных этой серии для каждой coutry на протяжении всех лет. Выходные данные должны быть объектом Javascript, который выглядит следующим образом:
Вода = {"1990": {"США": 0,1, "Канада": 0,3, "Австралия": 0,4}, "1991": {" США»: 0,1, "Канада": 0,5}}
Аякса вызов:
$.ajax({
type: "POST",
url: "Service/WebService.asmx/GetData",
dataType: "json",
async: false,
data: "{'Series':'" + Series+ "'}",
contentType: "application/json; charset=utf-8",
success: function (data) {
mapValues = JSON.parse(data.d);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
использование Entity Framework службы для чтения из базы данных.
var Context = new DataModel.DBEntities();
IEnumerable<YearClass> r = (from y in Context.Years
where y.Series.Name == Variable
select new YearClass
{
year = y.Name,
value = y.Value,
CountryCode = y.Series.Country.Code
});
годКласс представляет собой строго типизированный тип, чтобы использовать его здесь.
Затем я прохожу через все годы и создаю JSON, объединяя строку, соответствующую желаемому формату.
Однако этот процесс говорит много времени, и мне нужно найти способ увеличить его производительность.
Какую часть можно улучшить? любые советы приветствуются.
Какая часть процесса занимает много времени? Это не ясно из вашего поста? – spender
Я не уверен. Когда я нажимаю кнопку, приложение замораживается в течение 4 секунд, тогда я получаю данные. как я могу узнать, какая часть говорит больше всего времени? – Youssef
Я бы сказал, что большая часть снижения производительности может делать индексы: index на столбце Name, Code. Далее, для первого запроса, как правило, очень много (как вы сказали, 4 сек). – VikciaR