저는 성능 교육을하고 있으며이를 향상시킬 수있는 기회가 있는지 궁금합니다. 무엇보다 시도하지 않고이 정보를 쿼리합니다. DB 스키마 또는 데이터 변경.쿼리 최적화의 과제 -이 linq 쿼리를 조정할 수 있습니까
아래의 쿼리는을 실행하는 데 약 200ms가 걸립니다. 나는 야심적이지만, 도전하는 것은 무너 뜨릴 길이라는 것입니다. ADO.NET을 사용하거나 SP를 사용하거나 SQL 쿼리를 사용할 준비가되었지만 데이터를 변경할 수는 없습니다. 또한 EmpTable에는 약 2,000 만 개의 행이 있습니다. 파라 미드와 일치하는 레코드 하나를 선택합니다.
누구나 이것이 더 이상 최적화 할 수 있다고 생각하십니까?
Log.Time()
using (MyDataContext db = MyDataContext.GetContext())
{
db.ObjectTrackingEnabled = false;
var _Query = from t in db.EmpTable
where t.id == paramId
select t;
if (!_Query.Any())
return null;
}
Log.Time() -- 200 ms approx
이미 쿼리를 프로파일 링 했습니까? 코드로 변경할 부분이 많지 않으므로 테이블에 적절한 인덱스를 추가해야합니다. – 48klocs
해시 테이블에 데이터를 한 번로드 한 다음 메모리에서 paramId를 검색하십시오. 쿼리 실행 시간을 많이 줄일 수 있다고 생각하지 않습니다. – LeffeBrune
성능이 문제가되는 경우 linq을 사용하지 않는 것이 좋습니다. 왜냐하면 생성되는 SQL이 때때로 난독 화 될 수 있기 때문입니다. – jTC