lomaxx
그는 물었다 12년 전
9

큰 결과를 반환하는 통해 웹 서비스

39 m working on a i&, 웹 서비스 될 가능성이 제기되고 있는 이 순간 반환되었습니다 결과 꽤 큰 (&gt. 5mb).

39, 데이터 집합 s perfect 유효함 엔드입니다 it& 수 있지만, 이 크고 웹 서비스 호출할 수 있을지 궁금해 하고, 어떤 people& 인컨텍스트 동기화됨 또는 async I& # 39 m, s # 39 생각을 오른길로 다음과 같습니다.

  1. 이 경우 연결 실주했습니다 전체 결과 세트 할 것이다 다시 재생성된 및 승인에서. 있는가? 어떤 방식으로든 내가 할 수 있는 어떤 종류의 &quot resume"; 만약 연결 실주했습니다 또는 재설정하지?

  2. 심지어 이 큰 결과를 보내는 적절한? 이를 구현하기 위해 일종의 &quot paging&quot, 좋은 성과를 거둘 수 있을 것이다. 그 결과 세트 및 클라이언트는 서버에 저장된 생성되어 있는 이 때 자신의 설정 금액, 더 작은 단위로 다운로드하십시오 청크를 결과 세트 다시 조립 끝?

답변 4 개

나는 , , , 저장소에만 외곽진입 볼 3 개를 모두 페이징되는지 읽어들입니다 및 벽돌이날아와 누름식 .

제 생각에 따라 어느 정도 결과 집합에 대한 문제에 대한 해결책을 왜 당신 너무 커서 어떤 식으로 생성됩니다. Do your 결과 시간이 지남에 따라, 그들은 계산됩니까 한 번에요 그리곤요 끼워졌는지 스트리밍하려면 진행하시겠습니까 다시 빨리 가질?

  • 페이징의 외곽진입 *

내 경험상 외곽진입 적합한지 고객의 요구에 빠르게 액세스하려면 페이징의 때 사용한 결과 세트 검색 결과의 페이지 비슷한 크기의 청크를 합니다. 다음은 전체 결과, 전체 샤티니스 고려사항입니다 통해 프로토콜 클라이언트 사이의 설정되었습니다 캐싱과는 페이지 요청 및 / 또는 처리 결과 페이지를 생성하는 데 걸리는 시간을.

  • 저장소에만 읽어들입니다 *

그 결과 설정되었습니다 결과가 아닌 경우에 유용합니다 저장소에만 읽어들입니다 랜덤 액세스 길이 크기로 질의입니다 처리됩니까. 다음은 고객에게 제공할 수 있는 사용자 및 복잡한 문제를 고려할 경우 또는 모든 부분 개표 결과를 반환할 때까지 계산하십시오 할 경우 그 클라이언트 (생각하노라 정렬을 bsbab-분산 결과 검색 엔진).

  • 벽돌이날아와 누름식 *

이는 실로 엄청난 누름식 외곽진입 언급했다. 고객의 요구를 하더라도 모든 정보와 푸시할 필요가 있다고 한 결과 세트를 꼭 이래야겠어요 추천합니까 외곽진입 ws 렐리베르메사그링 등의 획일적인 '의' (통해 또는 직접 자신의 단순화됨 버전) 과 청크를 결과. 이 작업을 수행여

냥이라구 클라이언트뿐 도달할 수 있도록 1. 2 대로 폐기합니다 청크가 확보하십시오 클라이언트에서 것일 수 있습니다.

  1. 가능한 메모리 사용량을 줄일 수 있는 XML DOM, 또는 어떤 문제가 발생하는 5MB 유지할 수 있는 메모리 (있다고 가정하고, t 처리 결과를 aren& # 39 의 스트리밍 방식으로) 의 서버 및 클라이언트 바 있습니다.

하지만, t # 39 와 같은 다른 결과를 알고 있다고 주장한 don& 때까지 아무것도 할 수 있는 방법, 그리고 전반적인 성능에 수집됩니다 세트 크기, 실제 문제.

39, 정치적 반대 5 세트 크기 때문에 mb 의 하드 there& 게 전혀 없다. 하드 전송할지 Mb 400 여 수 있습니다.

39, ll get 비동기 핸들러도 you& 자동으로 (이후 you& # 39, re 사용하는 .net)

&gt. 일종의 &quot 구현하십시오 paging"; 여기서 &gt. 이 결과 세트 생성되어 저장됩니까 &gt. 그런 다음, 클라이언트는 서버에 &gt. 이 결과 세트 다운로드하십시오 청크를 에서 &gt. 이 작은 금액, 다시 조립 &gt. 세트는 그들의 최종

That& # 39 에 이미 it& 일이 당신꺼에요 - # 39 의 tcp / ip 라는; -) 다시 구현 할 수 있는 환경에.

마찬가지로 -

&gt. 전체 결과 세트 할 것이다 &gt. 다시 재생성된 및 승인에서

39 의 경우, 예를 들어 대부분 it& ms sql 생성하는 sql server 에서 암시적입니다 캐싱 등 일부 정보기술 (it) 결과 세트 - 그럼 다시 발생 활용할 수 있습니다 다음 세대 적립율은 빠르네.

이러한 문제에 대한 걱정 없이 얻을 수 있으며, 어느 정도 떨어진 # 39, & # 39 로 보살피되 그들이 서피스를 real&. 플랫폼 (s), re 문제 때문에 you& # 39 의 잘있게나 사용하여 많은 병목 현상을 당신꺼에요.

그래서 이 말은 you& 관심을 가질 수 있는 솔루션을 # 39, & # 39; d 자도으로 시작 레코드 number& # 39. # 39, & # 39 마지막 number& 및 기록. 매개변수입니다 데이터베이스에구성원을 웹 메서드입니다. (또는 # 39, & # 39 number& 페이지. and & # 39, 당 결과 page& # 39;)

이 경우, t store 는 너무 세게 백킹을 shouldn& # 39 수 있기 때문에 내장 sql server (심지어 mysql) 행 번호 매기기를 대한 지원.

그럼에도 불구하고 수행하지 않도록 사전에 예방할 수 있어야 합니다 세션 관리 서버에서 명시성 캐싱과는 결과 세트 및 그냥 # 39 의 캐싱과는 백킹을 store& 신뢰할 수 있는 삶을 유지하기 위한 단순해졌습니다.

내가 secretGeek& 다소 이견을 보이고 있는 # 39 의 설명:

&gt. That& # 39 에 이미 it& 일이 당신꺼에요 - # 39 의 tcp / ip 라는; -) 다시 구현 할 수 있는 환경에.

이게 정말 바라는 경우가 있을 수 있습니다, 하지만 UI 만 힘들다. 어떤 경우에는 다른 방법으로 구현하십시오 스트리밍합니다 데이터를 클라이언트 (뭔가 푸슐츠 같은 메커니즘을 통해), 또는 이를 때, 그런 다음 페이지를 청크를 제안하세요 로드하십시오 클라이언트상의 UI 를 구축할 수 있는 일부 정말 작은 서브셋 후 전체 데이터 양을 천천히.

따라서 야바위꾼, UI 에서 user& # 39 의 perspective) 의 시간과 비용을 절감할 수 있지만, 가치있는 추가 될 경우 작업량의 평가하십시오 합니다. 왜냐면 난 don& # 39, 될 것이라고 작업량을 없는 것 같지는 않다.