テスト目的で Azure でアプリをホストしています。ただし、パフォーマンスがまったく最大に達していないように見えるにもかかわらず、多くの API 呼び出しが非常に遅くなっています。IIS Express と SQL Server Express でローカルで 170 ミリ秒かかる 1 つの API 呼び出しは、Azure ではなんと 14485 ミリ秒かかります。テストデータはまったく同じです。多くのインクルードが行われていますが、データが必要であり、インクルードが存在しない場合、クエリはさらに遅くなります。
Azure でクエリ/API 呼び出しが非常に遅いのはなぜですか? パフォーマンスがピークに達していれば理解できますが、60% を超えるパラメーターは 1 つもありません。
コード:
var results = db.ElectoralDistrictResults
.AsNoTracking()
.Where(x => x.ElectoralDistrict.Code == addressViewModel.ElectoralDistrictCode)
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.ConstituencyResult.CountyResult.Election.Votes.Select(y => y.Party))
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.ConstituencyResult.CountyResult.Election.ElectionTurnout)
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.ConstituencyResult.CountyResult.Votes.Select(y => y.Party))
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.ConstituencyResult.CountyResult.ElectionTurnout)
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.ConstituencyResult.CountyResult.County)
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.ConstituencyResult.Votes.Select(y => y.Party))
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.ConstituencyResult.ElectionTurnout)
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.Votes.Select(y => y.Party))
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.ElectionTurnout)
.Include(x => x.MunicipalityElectoralDistrictResult.Votes.Select(y => y.Party))
.Include(x => x.MunicipalityElectoralDistrictResult.ElectionTurnout)
.Include(x => x.ElectionTurnout)
.Include(x => x.Votes.Select(y => y.Party))
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityResult.Municipality.County)
.Include(x => x.MunicipalityElectoralDistrictResult.MunicipalityElectoralDistrict)
.Include(x => x.ElectoralDistrict)
.ToList();
パフォーマンス:
アプリ サービス:
Basic: 1 Medium
B2
2x cores
200 total ACU
3.5 GB memory
A-Series compute
50 DTU (S2) を備えた Azure 標準データベース。
ローカルホストのリクエストには 170 ミリ秒かかります
App Service リクエストに 14485 ミリ秒かかる
データベース呼び出しのローカルホスト:
データベース呼び出し Azure データベース: