2009-03-02 8 views
0

3 계층 응용 프로그램을 개발했으며 데이터베이스에서 데이터를 채우는 데 문제가 있습니다. 내 응용 프로그램에는 데이터베이스에서 큰 데이터를 쿼리하는 창이 있으며이 프로세스는 매우 오랜 시간이 걸립니다. (내 클라이언트가 서버와 너무 멀리 떨어져 있고 그 사이의 연결은 128 KBS입니다.) 그런 다음이 문제를 해결하는 솔루션을 생각해 봅니다. 이 솔루션은 y 초마다 x 개의 데이터 레코드를 채 웁니다. (예 : 10 개의 레코드를 채워 UI에 먼저 표시 한 다음 매 5 초마다 10 개의 행을 표시하십시오.)데이터베이스에서 큰 데이터 채우기

이 문제를 해결하는 좋은 해결책은 무엇입니까? 이것을 해결하는 또 다른 좋은 방법이 있었습니까?

감사합니다.

답변

2

표시 목적으로 사용하려면 페이징을 사용해야합니다. 사용자가 스크롤 막대를 사용하여 더 많은 정보에 액세스하려고하면 UI가 레코드의 다음 "페이지"를 가져 오는 변형이 있습니다. 데이터를 집계해야하는 경우 쿼리에서 수행하여 전체 데이터가 네트워크를 통해 이동하지 않도록하십시오. 정말로/절대적으로 전체 데이터를 가져와 일부 프로세스를 수행해야하는 경우, 전체 데이터를 한 번에로드하기에는 너무 크거나 너무 큰지 고려하십시오. 이 경우 데이터 청크를 가져 와서 관련 프로세스를 실행 한 다음 다른 청크를 가져옵니다 (계속). 그럼에도 불구하고 UI (스레드/비동기 작업)를 차단하지 않는 접근 방식으로 수행해야합니다.

0

지연로드를 수행하는 옵션이 있습니까? (즉, 필요에 따라 데이터를로드하므로 한꺼번에로드하지 않을 수 있습니다)?

0

응용 프로그램 UI에서 허용 할 수있는 경우 여러 페이지에 레코드를 표시 할 수 있습니다.

데이터를 검색하기 위해 비동기 호출을 사용하여 (데스크톱 응용 프로그램 인 경우) 쿼리하는 동안 앱을 멈추지 않는 것이 좋습니다.

웹 앱인 경우 AJAX 사용을 고려해보십시오.

1

프레디 (Freddy)가 나를 때렸지만, 예를 들어 스크롤바를 사용하면 자동으로 다음 페이지/뷰를 가져 오는 데이터베이스 뷰어가 많은 수의 데이터를 채우는 것을 알 수 있습니다. 데이터.

웹 사이트를 생각하는 경우 거의 모든 페이지를 한꺼번에로드하지 않도록 페이지를 작성합니다.

관련 문제