2013-08-29 3 views
1

장바구니에있는 일부 제품에 대한 비교를해야하는 상황에 처해 있습니다. 카트는 사용자가 원하는만큼의 항목을 가질 수 있지만 평균 시간은 카트 당 약 5-15 품목입니다.각 매개 변수에 대한 TVP 대 루프

제 질문은 최적화/오버 헤드에 관한 것입니다. 각 제품의 부서를 확인하고 배송비를 결정해야합니다. 각 제품 부서는 제품과 직접 관련이 없습니다 (즉 제품 정의 테이블에 부서 ID 열이 없음). 제품 ID를 기반으로 부서 ID를 쿼리하고 가져올 수 있습니다.

내 질문이 여기에 있습니다. ID의 목록을 저장 프로 시저에 전달하고 기존 테이블을 쿼리하기 위해 테이블 ​​반환 매개 변수와 같은 식으로 저장 프로 시저의 목록을 사용하는 것이 더 (오버 헤드가 적게 든/빠름) 좋을까요? 또는 제품을 한 번에 하나씩 쿼리하는 것이 더 빠를 수도 있습니다 (평균 장바구니 크기가 5-15의 상한선이라고 가정), 부서 ID를 얻은 다음 다음 항목으로 이동 하시겠습니까?

나는 TVP를 사용한 적이 없으며 스택 오버플로 및 msdn 사이트에 게시 된 다른 질문을 통해 배우려고합니다. 그래서 내가 원하는 결과를 얻기 위해 많은 시간을 할애하기 전에 나는이 질문을 제기하고 있습니다.

답변

1

일반적으로 TVP는 더 빨라야합니다 (필요할 경우 더 빨리 만들 수 있습니다). 목록이 클수록 TVP는 ID 당 하나의 쿼리에 비해 유리합니다.

TVP를 사용하기 위해 설정하는 작업이 조금 더 많으므로 작은 목록 (예 : 3 이하)을 사용하지 않는다면 가치가 없을 수도 있지만 그렇지 않은 경우에는 분명히 더 나은 접근법.

관련 문제