asp:GridView コンポーネントにデータを表示する .aspx 画面があります。ページの読み込み時に最大約 30,000 件のレコードが返される可能性があります。データベースから 13000 レコードを取得するのに約 30 秒かかります。これは遅いですか、それとも速いですか? データベースからレコードを取得するためにストアド プロシージャを使用しています。次に、実行に 2 分以上かかる foreach ループがありますか? そのため、ページの読み込みに 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();
}
}