Linq에서 Entities로 실행되는이 쿼리가 있습니다. 처음 쿼리를 실행하면 2 분 이내에 실행 계획이 생성됩니다. 계획이 캐시 된 후 조회에는 1 ~ 2 초가 소요됩니다. 내가 가지고있는 문제는 그 계획이 몇 시간에 한 번씩 계속해서 재건되고 있다는 것이고 나는 그것이 왜 그렇게 될지 확신하지 못한다.SQL Server 쿼리 실행 계획 다시 작성
이것은 우리가 사용하는 linq 쿼리입니다. 나는 그것이 미친 것처럼 보입니다 만, 우리에게 필요한 것은 이것이 유일한 옵션이라는 것입니다.
var data = from row in mgr.ServiceDesk_RequestEvent
.Include("ServiceDesk_Event")
.Include("ServiceDesk_Event.ServiceDesk_SLAEventRule")
.Include("ServiceDesk_Event.ServiceDesk_SLAEventRule.ServiceDesk_RuleSet")
.Include("ServiceDesk_Event.ServiceDesk_SLAEventRule.ServiceDesk_RuleSet.ServiceDesk_Rule")
.Include("ServiceDesk_Event.ServiceDesk_SLAEventRule.ServiceDesk_RuleSet.ServiceDesk_Rule.ServiceDesk_RuleOperator")
.Include("ServiceDesk_Event.ServiceDesk_SLAEventRule.ServiceDesk_RuleSet.ServiceDesk_Rule.ServiceDesk_RuleConstraintField")
.Include("ServiceDesk_Event.ServiceDesk_SLAEventRule.ServiceDesk_RuleSet.ServiceDesk_Rule.ServiceDesk_RuleConstraintValue")
.Include("ServiceDesk_Event.ServiceDesk_SLAEventRule.ServiceDesk_RuleSet.ServiceDesk_Action")
.Include("ServiceDesk_Request")
.Include("ServiceDesk_Request.People_User")
.Include("ServiceDesk_Request.ServiceDesk_RequestCategory")
.Include("ServiceDesk_Request.ServiceDesk_RequestCategory.ServiceDesk_SLA")
.Include("ServiceDesk_Request.ServiceDesk_RequestRole_Groups")
.Include("ServiceDesk_Request.ServiceDesk_RequestRole_Groups.Security_Role.Security_UserRoles")
.Include("ServiceDesk_Request.ServiceDesk_RequestRole_Groups.Security_Role.Security_UserRoles.Security_User")
.Include("ServiceDesk_Request.ServiceDesk_RequestPriority")
.Include("ServiceDesk_Request.Offices_User")
.Include("ServiceDesk_Request.ServiceDesk_RequestTechnicians")
.Include("ServiceDesk_Request.ServiceDesk_RequestTechnicians.People")
where row.Completed == false && row.Deleted == false
select row;
여기 생성 된 t-sql은 꽤 크기 때문에 붙여 넣기를 원하지 않습니다. 누구든지 아이디어가 있다면 기꺼이 공헌하십시오.
감사합니다.
네가 맞아. 미쳤어. 당신은 실제로 당신이 포함하는 모든 엔티티의 모든 분야를 필요로합니다. * 그리고 당신은 당신이 프로파일 한 모든 단일 인스턴스 *와 *를 업데이트하려고합니다. 그리고 이것이 개별 수요 로딩보다 빠르다는 것을 알았습니까? 그것이 내가 예상 할 수있는 유일한 합리적인 주장입니다 (읽기 전용 유스 케이스의 첫 번째 선택) 또는 더 작은 쿼리로 분리하는 것입니다. –