시나리오 : 이전에 WCF Data Services 3.0을 호스팅 한 제 3의 회사와 협력 해 왔으며 웹 서비스에 대한 API 액세스 만 제공하고 있습니다. 아니요. 스토어 절차를 사용하여 속도를 높일 수 없습니다. SQL 직접 액세스 권한이 있습니다.WCF Data Services에서 멀티 스레딩/pfx를 사용하여 작업 속도를 높이려면 어떻게해야합니까?
저는 PFX로 약간 놀았습니다. WCF Data Services를 사용하여 PFX를 사용하려고 시도 했으므로 잘못되었을 수 있습니다. 예를 들어
public List<EntityA> GetAEntitiesBy(int customerID) {
var result = new List<EntityA>();
int lastResultCount = 50;
int callsMade = 0;
while (lastResultCount == 50)
{
var results = MyApiWrapper.CreateODataContext().EntityA.Expand("Customer").Expand("EntityB").AsParallel()
.Where(c => c.EntityA.CustomerID == customerID)
.Where(c => c.EntityB.IsProperty1True && c.EntityB.Property2TypeID == 1)
.Select(c => c)
.Skip(callsMade * 50)
.Take(50));
results.ForAll(c => nodes.Add(c));
callsMade++;
lastResultCount = results.Count;
}
return nodes;
}
내가, 내 병목 나중에 내가 .ForEach
하고 각각을하기 때문에이 함수의 결과는, 다시 내 웹 양식으로 이동 한 후 만든 최대 내가 DataServiceQuery을 할 때마다 50 개 행을 당길 만 수있어 이해 행 좀 다른 쿼리 (WCF) againts 다른 서비스를 실행해야합니다.
어떤 제안이 작업을 빠르게하는 방법?
반면에이 메서드를 디버깅 할 때 Parallel Query Execution 중에 GetEnumerator가 호출 될 때 "Children could not Be evaluated"이라는 오류 메시지가 나타났습니다.
감사합니다.
안녕하세요 @ 에릭, 귀하의 회신에 감사드립니다. 출력 결과에 대해 ObjectCache를 사용하고 있습니다.이 데이터는 사용자 정의 jQGrid (페이지 매김을 통해 10, 20, 50 등 원하는 값으로 표시됩니다.)이 문제가 될 수 있지만 사용자가 원하는 모든 것입니다. –
여러 페이지에 대한 데이터를 병렬로 가져 오시겠습니까? –
하나의 단일 보고서 (그리드)에 대한 데이터를 하나의 단일 페이지로 가져옵니다. –