2009-04-23 2 views
1

많은 양의 데이터를 표시하는 ASP.Net 웹 사이트를 만들고 있습니다. 데이터는 데이터 액세스 레이어를 통해 나에게 제공됩니다. 데이터에서 큰 데이터 테이블을 구축하고 gridview 또는 동적으로 생성 된 웹 컨트롤을 사용하여이 데이터를 표시합니다.ASP.Net 데이터 기반 웹 사이트 효율성

내가 아는 문제는 많은 데이터가 전달되면 웹 사이트가 느려진다는 점입니다. 필자는 데이터 판독기를 사용하는 방법을 알고 있지만 데이터 액세스 계층을 사용해야하므로 SQL 테이블에서 직접 데이터 보관함을 사용할 수는 없습니다.

필자가 필요로하는 데이터를 표시하기 위해 많은 정렬 방법을 데이터에 적용해야하므로 데이터 테이블을 부분적으로 채울 수있는 옵션도 없습니다.

데이터 테이블의 속도를 높이는 방법에 대한 제안이 있으십니까? 아니면 다른 것을 사용하는 것이 더 효율적입니까?

답변

0

병목 현상이 웹 응용 프로그램에 있다는 것을 확신합니까?

가장 먼저 할 일은 느린 페이지에서 실행되는 가장 긴 SQL 쿼리가 무엇인지 추측하고 쿼리 브라우저에서 실행되는 방법을 확인하는 것입니다.

속도가 느린 경우이를 최적화하십시오.

0

'대용량'데이터를 웹 응용 프로그램으로 가져오고 정렬/필터링을 수행하면 '대형'정의에 따라 느려질 수 있습니다. 데이터를 웹 응용 프로그램으로 가져 오기 전에 데이터베이스 서버에서 정렬/필터링을 적용하면 속도가 빨라집니다. 당신은 이것을 할 수있는 선택권이 없다고 말하지만, 정렬은 데이터베이스 서버가 만들어지는 것입니다.이 작업을 할 수 없습니까?

0

가장 먼저해야 할 일은 느리게 진행되고있는 프로세스의 부분을 정확히 찾아내는 것입니다. 그것이 당신이 생각하는 곳이 아닐 수도 있습니다. 코드 프로파일 링 또는 다른 부분의 타이밍을 수행하여 요청 중에 각 코드 부분이 소비하는 시간을 정확하게 결정합니다. 우리의 경우에는 데이터 레이어 (개체 모델을 채우는 독자 실행)가 실제로 빠르다는 사실을 발견했습니다 (데이터베이스의 인덱스로 처리 된 몇 가지 예외가 있음). 클라이언트에서 자바 스크립트가 실제로 느린 반면 .

따라서 측정을 시작한 다음 최적화 할 위치를 결정하십시오.

+0

좋은 코드 프로파일 링 도구를 얻을 수있는 아이디어가 있습니까? 바람직하게는 무료입니다. –

+0

CLR 프로파일 러를 사용했습니다. 사용하기 가장 쉬운 방법은 아니지만 비용은 전혀 들지 않습니다 (돈). http://www.microsoft.com/downloads/details.aspx?FamilyId=A362781C-3870-43BE-8926-862B40AA0CD0&displaylang=en 다음은 사용을 시작하게 할 기사입니다. http://msdn.microsoft.com/en-us/library/ms979205.aspx –

1

"큰 데이터 테이블을 작성한 다음 gridview 또는 동적으로 생성 된 웹 컨트롤을 사용하여 표시하는 경우"네트워크가 병목 현상이 될 수 있습니다. 도움이 될 수있는 유사한 SO question에 대한 답변을 참조하십시오.