2012-10-30 6 views
4

3000 개 이상의 결과 세트가있는 쿼리가 있습니다. 나는 각 레코드를 반복하기 위해 반복자를 사용했다. 그래서 시스템의 부하를 줄여야하고 jsp에서 페이지 매김을 사용하는 것이 가장 좋습니다. 누구든지 더 좋은 아이디어가 있다면 나는 그것을 듣게되어 기쁠 것입니다. 숫자를 가져 오는 것과 비슷한 것. 프리젠 테이션 기술은 스트럿츠입니다. 페이지 매김이 좋다면 나를 도와주세요.JSP로 페이지 매기기

+0

구체적인 질문은 무엇입니까? –

+1

성능을 향상 시키려면 가능한 경우 데이터베이스 수준에서 페이지 매김을 사용하는 것이 좋습니다. –

+3

여기를보십시오 : http://theopentutorials.com/examples/java-ee/jsp/pagination-in-servlet-and-jsp/, 전체 예제가 들어 있습니다. –

답변

1

jsp에서 결과 세트를 페이징하면 문제가 해결됨

2

쿼리 데이터베이스가 제한되어 있으므로 쿼리에 한도를 두는 것을 의미합니다 (예 : 0 to 50 첫 페이지). 첫 페이지에 대한 요청이있는 경우 한도 변경 0+(50*1) to 50+(50*1) 및 n 번째 페이지의 경우 같음 0+(50*n) to 50+(50*n)

+0

데이터베이스 수준에서 페이지 매김을 사용하는 방법을 모르겠습니까? Quoi에 – AFF

+0

: 내 쿼리에서 제한을 어떻게 사용할 수 있습니까? 다른 페이지에서 결과를 반환합니까? – AFF

+1

당신은 당신의 질의를 향상시켜야합니다. ** 선택 ** 무엇이 필요합니다. –

1

페이지 네이션은 좋은 아이디어입니다. 그러나 일뿐 아니라 그 목적을 이해해야한다는 것을 기억해야합니다.

페이지 매김을 구현하십시오. 그러나 페이지 매김을 구현하는 경우 여전히이 같은 수의 행을 가져 오면 목적이 실패합니다. 은 검색어도 개선해야합니다. 정확히 개의 항목 수가의 단일 페이지에 표시되도록하려면 정확한 개의 행 수를 가져와야합니다. 이렇게하면 응용 프로그램 서버와 데이터베이스 서버 모두 구현 이점을 얻을 수 있습니다.

+0

사실 일 수 있지만 잘못 될 수도 있습니다. 3000 행을 가져 오는 데이터베이스 쿼리는 매우 빠를 수 있습니다. 특히 웹 서버와 데이터베이스가 함께 배치되어 있고 인터넷을 통해 이러한 3000 행을 전송하면 주요 성능 문제가 발생할 수 있습니다. 브라우저. –

+0

@JBNizet 그 이유는 그가 ** 오직 필요한 것을 쿼리해야합니다 **. 예를 들어 페이지 당 20 개 항목의 페이지 매김 인 경우, 'rownum> 1 및 rownum <21;'과 같은 테이블에서 SELECT *와 같은 쿼리를 사용하여 인터넷을 통해 전송되는 항목은 20 행에 불과합니다. 마찬가지로이 최소 수의 행을 표시해도 문제가되지 않습니다. –

+0

모든 이메일을로드해야한다고 가정하면 어떻게해야합니까? 가장 좋은 방법은 페이지 매김이라고 생각합니다. 모든 이메일을로드해야하지만 다른 페이지에 표시해야하기 때문입니다. – AFF