주문 및 관련 데이터를 나열하는 표가 필요합니다. (순수 가상 예) 편의상XML 경로 대 더 많은 연결
: 그리드 각 순서를 표시한다
OrderID
OrderName
OrderDate
Collection Parts
Collection Destinations
Collection SuppliersInvolved
아니라 각 컬렉션의 텍스트 설명, 는 예 :
OrderID OrderName OrderDate Parts Destinations SupplierInvolved
2 davo 21/5/12 A,B,C London, Paris SuppA,SuppB,SuppC
지금,이 그리드 월 최대 200 개의 행이 있습니다.
이 문제는 우리가 사용하는 맞춤형 ORM이 다중 PK 결과 집합을 고유 한 개체로 매핑하는 주요 속도 저하 문제가 있음을 나타냅니다.
예 :
OrderID OrderName OrderDate Part Destination Supplier
2 davo 21/5/12 A London SuppA
2 davo 21/5/12 B London SuppA
2 davo 21/5/12 A London SuppB
2 davo 21/5/12 B London SuppB
결과 집합과 관련된 1 개의 컬렉션에도이 문제가 있습니다. 쿼리 자체는 절대적으로 훌륭하고 빠르게 실행됩니다. 문제는 매핑입니다.
그래서, 난 정말 (최대한 멀리 볼 수) 두 가지 옵션이 왼쪽 오전 :
는 주문이 결과 집합하기, 등 공급자를 가져, 대상을 가져, 부품을 가져 오는 결과 집합의 각 주문에 대해 이것은 DB에 대한 601 번의 호출을 의미합니다.
FOR XML PATH을 사용하여 각 컬렉션을 그룹화하십시오. 더 많은 CPU를 사용하고 초기 쿼리를 많이 읽음.
것은 내가 생각하지 않은 더 나은 다른 방법이 있는지, 둘째, 더 나은 것, 그리고 다음은 위의 두 가지 방법 중 어느 것이, 첫째, 궁금하네요. 문제는 둘 다 쓰레기 개체 매퍼 (이 쿼리의 결과 집합에 대해서만 내 자신의 DAL 매핑 프로 시저를 만들 수 없음)를 사용해야한다는 것입니다.
아이디어가 있으십니까?
감사합니다.
안녕하세요, 맞춤 속성을 의미합니까? For XML Path를 사용하여 쿼리가 이미 있습니다. 필자는 실제 데이터에 대해 쿼리가 약 2,000 개의 레코드에서 평균 3 ~ 5 초가 걸리는 것으로 나타났습니다. 이것은 나를 위해 너무 느립니다. 맞춤 속성으로 어떻게 매핑합니까? – user676767