2009-11-15 2 views
2

Entity Framework를 사용하여 테이블을 매우 빠르게 검색 할 수 있습니다. 연락처 테이블, JobsToDo 테이블 및 두 테이블을 연결하는 매트릭스 테이블 (예 : Contacts_JobsToDo_Mtx 및 I)이있는 경우 Contacts_JobsToDo_Mtx 테이블에 두 개의 외래 키를 지정하면이 Mtx 테이블을 검색하려면 두 개의 외래 키에 대한 인덱스를 지정해야합니까? 또는 그들이 외래 키 두 개라는 사실에 의해 어쨌든 인덱싱 된 것으로 간주됩니까? Entity Framework는 두 키 모두에 대한 인덱스를 지정하지 않고도 Mtx 테이블을 신속하게 검색 할 수 있습니까? 감사!Entity Framework 인덱스 및 외래 키 사용

답변

1

데이터베이스 백엔드에 따라 다르지만 일반적으로 (내 SQL Server 환경에서) 아니오. Entity Framework를 사용하는 것만으로도 SQL Server의 제한 사항 (또는 속도 향상을위한 잠재력)이 사라지지 않습니다.

기본 데이터베이스가 쓰레기라면 EF 성능이 허술합니다. 데이터베이스가 정상적으로 작동해야합니다. EF를 두드리는 것만으로도 성능 문제가 갑자기 사라지는 것은 아닙니다.

그래서 나는 당신이 당신의 시스템이 잘 작동 할 수 있도록 적절한 색인을 얻는 데 여전히 도움이 될 것이라고 생각합니다. EF는 기본 데이터베이스만큼이나 우수합니다 ....

1

Entity Framework 1은 일반적으로 많은 테이블로 불리는 "매트릭스"에 스키마를 생성하거나 외래 키를 추가하는 것과 아무런 관련이 없습니다. Entity Framwork 4.0에서는 이러한 테이블을 만들 수 있으며 필요한 키와 인덱스를 갖습니다.

인덱스는 모든 기본 키에 대해 자동으로 생성되므로 테이블을 올바르게 작성한 경우 올바른 인덱스를 설정할 필요가 없습니다.

Entity Framework는 일반적인 CRUD 시나리오의 99 %에 대해 최적화 된 쿼리를 작성합니다. esql 또는 linq 명령문에 익숙해지면 최적화되지 않았을 수도 있지만 중소 규모의 쿼리 액세스에서는 여전히 잘 수행되어야합니다.

Entity Framework는 올바른 인덱스를 사용할 책임이 없으므로 기본 데이터가 쿼리 최적화 프로그램 작업을 저장합니다. 인덱스를 제대로 사용하지 않는 쿼리를 잘못 작성하면 문제가 될 때까지 걱정하지 않아도됩니다.

TL : DR;

Entity Framework는 사용자가 요구하는 작업에 책임이 없으며 대부분의 경우 잘 수행됩니다.

관련 문제