EF로 만든 프로젝트를 개발서버에 올리니, 처음 로딩속도가 많이 느리네요.
183
작성한 질문수 3
EF로 생성해서 개발서버에 올려놓았는데, 첫 로딩속도가 많이 느리네요.
개발사이트에 출근해서 접속하거나, IIS의 응용프로그램풀을 재시작후에 접근하면 5~6초 정도 걸립니다.
하지만 일단 연결이 되고 나면, 이후에는 1초 이내에 응답이 바로바로 옵니다.
접근도메인이 문제인가 싶어서, IP로 바꾸어도 동일하네요.
이런 현상이 나타나는 이유와, 해결 방법을 알고 싶습니다.
답변 2
0
그 외 관련 글도 https://forum.dotnetdev.kr/t/ef-core/11401/7
https://learn.microsoft.com/en-us/ef/core/querying/related-data/eager
추천드립니다.
감사합니다.
0
안녕하세요.개발자park입니다.
[Q
개발사이트에 출근해서 접속하거나, IIS의 응용프로그램풀을 재시작후에 접근하면 5~6초 정도 걸립니다.
하지만 일단 연결이 되고 나면, 이후에는 1초 이내에 응답이 바로바로 옵니다.
]
1.ADO.NET보다 일단 EF Core가 느립니다.
★2.context에 데이터 load시 시간이 걸리는 것으로 추측됩니다.
=>Related Data 로드시 Loading전략을 사용합니다
예시로 써 Eager loading 또는 Greedy loading으로 불리는 Loaidng전략 관련된 코드를 추가해줍니다.
쉬운 방법으로 예를 들겠습니다.
ASP.NET Core MVC프로젝트의 program.cs에 다음과 같은 코드를 추가할 수 있습니다.
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
//여기서부터 필요하신 코드라고 생각됩니다.
//로딩 전략 사용하기
//City와 MyTest는 Model에 해당하며 1:N 즉 One to Many관계에 속합니다.
//City와 MyTest는 1주~2주내로 새로 출시되는 강의에서 사용되는 Model입니다.
//Model이 더 많을 경우 City와 MyTest처럼 Model들을 Loading해주시면됩니다.
using (var scope = app.Services.CreateScope())
{
var services = scope.ServiceProvider;
//SeedData seedData = new SeedData();
//seedData.Initialize(services);
using (var context = new ApplicationDbContext(
services.GetRequiredService<
DbContextOptions<ApplicationDbContext>>()))
{
var mytest = context.MyTest.Include(c => c.City);
foreach (var test in mytest)
{
Console.WriteLine($"{test.Name}연결된 {test.City?.Name}");
}
}
}
20) 16. 저장프로시저 쪽 new MapperConfiguration(cfg => { })
1
54
1
using (SqlConnection ~)을 하는 이유가 뭔가요?
0
115
2
이후 예정된 강의 문의를 드립니다
0
66
1
12_3강 AutoMapper 설명 중에 MapperConfiguration
2
86
1
Business Layer 종속성 추가 불가 문제
0
106
3
Console.WriteLine
0
62
1
iis 배포 후 view페이지 수정
0
132
2
8장 Controller 질문
0
80
2
DTO 여러개 대신 하나로
0
174
2
CS0618 SqlConnection
0
262
1
SqlConnection관련 질문
0
124
2
12강 듣던중...Controller.cs 질문입니다.
0
128
1
ASP.NET Core MVC를 비동기로 처리하는 이유가 무엇일까요?
0
221
1
프로젝트 배포 질문있습니다
0
147
2
MSSQL 설치 시 오류 발생
0
632
2
클래스 라이브러리 추가시
0
239
1
DB에서 조회된 다건의 데이터를 처리할 때
0
209
1
cshtml.css, cshtml.cs 비하인드 코드 추가 방법
0
416
1
로그인에서 받아온 Session을 활용하고 자 할 때
0
311
1
Request.Query는 배열로는 받을 수 없나요?
0
368
2
Single View Engine은 뭘까요?
0
195
1
Results API가 뭔가요?
0
231
1
QueryString 대소문자 구분
0
455
1
화면 단이 아닌 서비스 단에서 파라미터 추가
0
231
1





