我有一个 .aspx 屏幕,它在 asp:GridView 组件中显示一些数据。页面加载时最多可以返回大约 30k 条记录。从数据库中检索 13000 条记录需要大约 30 秒。这是慢还是快?我正在使用存储过程从数据库中检索记录,我只查询数据库一次并存储它。那么有一个 foreach 循环需要超过 2 分钟才能执行?所以加载页面需要 aapr 4 分钟。
我只是 asp.net 的初学者。你能帮我改善页面加载时的延迟吗?
这是循环结构..我们可以以任何方式优化它吗?
List auditList = retrievedatafromdatabase();//该方法从数据库返回记录
foreach (Entity obj in auditList)
{
obj.CultSpecificRevisedData = "NULL";
obj.CultSpecificPublishedData = "NULL";
if (obj.RevisedData != null && obj.RevisedData != "NULL")
obj.CultSpecificRevisedData = ConvertToProfileSpecificFormat(Convert.ToDecimal(obj.RevisedData), DecimalSeparator);
if (obj.PublishedData != null && obj.PublishedData != "NULL")
obj.CultSpecificPublishedData = ConvertToProfileSpecificFormat(Convert.ToDecimal(obj.PublishedData), DecimalSeparator);
var yearPart = obj.CalendarYear;
var monthPart = string.Empty;
var frequencyName = GetEnglishFrequencyBame(frequencyTypeMasId);
if (frequencyName == FrequencyType.Monthly)
{
monthPart = new DateTime(obj.CalendarYear, GetMonthNumber(obj.Month), 1).ToString("MMM");
obj.CultSpecificPeriod = monthPart + "-" + yearPart.ToString();
}
if (frequencyName == FrequencyType.Quarterly)
{
UserMessage = obj.QuarterName;
obj.CultSpecificPeriod = UserMessage + "-" + yearPart.ToString();
}
else if (frequencyName == FrequencyType.BiAnnually)
{
UserMessage = obj.SemesterName;
obj.CultSpecificPeriod = UserMessage + "-" + yearPart.ToString();
}
else
{
obj.CultSpecificPeriod = yearPart.ToString();
}
}