어느 것이 더 빠릅니까? 쿼리 1 엔티티와 다른 관련 엔티티에 대한 왕복을합니까? 아니면 그냥 왼쪽으로 1 왕복과 함께?

c# dapper database-performance sql sql-server

문제

public class Item
{
    public int Id { get; set; }
    public string Description { get; set; }
    public decimal Price { get; set; }
    public decimal Cost { get; set; }
    public Department ItemDept { get; set; }
    public Category ItemCat { get; set; }
    public List<Supplier> Suppliers { get; set; }
    public List<Barcode> Barcodes { get; set; }
    public List<Discount> Discounts { get; set; }

}

내 질문이 일반 SQL SQL Server 2008 이야기 그래서 어를 사용하여

이 성능을 어떻게 향상시킬 수 있습니까? 쿼리가 Id (기본 키)로 항목을 가져 오는 것이 더 빠르거나 더 나은 것으로 가정합니다. - 하나의 쿼리가 조인 (왼쪽 조인, 내부 조인 ..etc) (1 라운드 트립 전용) 또는 항목을 먼저 쿼리 한 다음 관련 테이블 (여러 라운드 트립)에 대해 다른 쿼리를 실행하거나 권장 사항이 있습니까?

인기 답변

댓글이 너무 길었습니다.

성능 질문에 대답하는 가장 좋은 방법은 시스템의 데이터에서 시도해 보는 것입니다. 그런 다음 실제로 어떤 것이 더 효과적인지 확인할 수 있습니다.

정보에 근거한 추측은 데이터베이스에 조인을시키는 일이 옳은 일이라고 말합니다. 데이터베이스는이 작업을 위해 설계되었으며 효과적으로 조인을 구현해야합니다. 아마도 더 중요한 것은 실행하는 각 쿼리에 오버 헤드가 있다는 것입니다. 오버 헤드로 쿼리를 컴파일합니다. 대기 시간이 쿼리를 데이터베이스에 전달하고 있습니다. 결과 처리 및 응용 프로그램으로 가져 오는 데 데이터베이스 오버 헤드.

이는 또한 데이터베이스에서 더 많은 작업을하는 것이 좋은 방법임을 시사합니다. 그러나 시스템을 점검해야합니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.