2009-09-23 2 views
0

우리는 ASP.NET 응용 프로그램에서 그리드보기 작업을하고 있습니다.ASP.NET - 그리드보기를 표시하는 데이터베이스 호출 방지

사용자가 정렬 (열 정렬), 페이지 매김 링크를 클릭 할 때마다 또는 레코드를 업데이트 할 때마다 데이터 테이블/데이터 테이블을 격자보기로 바인딩하는 데이터베이스 호출을 피하고자합니다.

처리하는 것이 가장 좋은 방법을 알려주시겠습니까?

참조 문서 나 웹 참조 (필요한 경우)를 제공 할 수 있다면 좋을 것입니다.

많은 감사, 감사합니다. Nani.

답변

1

나는 당신이 어떤 용도로든이 최적화를하기가 어려울 것이라고 생각합니다. GridView 정렬/업데이트/페이지 함수가 완료하는 데 많은 시간을 (과도하게) 사용합니까? 당신은 데이터베이스 디자인을 볼 필요가있다.

2

여기에는 몇 가지 옵션이 있지만 모두 함정이 있으며 종종 은 데이터베이스를 다시 치는 것보다 악화됩니다. 어떤 가능성 :

  • CacheDataSource을 저장합니다. 좋은 개요는 Caching Application Data을 참조하십시오.

  • 소량의 직렬화 가능 데이터의 경우 PageViewState에 저장하는 것이 좋습니다. 이것의 단점은 클라이언트에 보내는 HTML의 크기가 커지므로 데이터베이스를 다시 방문하지 않아도 저장할 수있는 시간과 균형을 유지해야한다는 것입니다. Scott Mitchell의 Understanding ViewState은 이에 대한 훌륭한 소개입니다.

  • 그냥 완성도를 위하여 -이 하나 끔찍한입니다 : 당신이 GridView 저장할 수의 DataSource 사용자의 Session에. 이렇게하면 웹 서버의 메모리가 많이 소모됩니다. 프로토 타이핑을 제외하고는이 기술을 사용하지 않아야합니다 (이 경우 데이터베이스를 다시 히트 할 수도 있습니다).

마지막으로, 당신은 절대적으로 심각하게이 otheranswers의 조언을해야합니다.

2

사용자가 데이터베이스 호출을 자주하지 않고도 광범위한 정렬, 페이지 매김 및 편집 기능을 사용하려면 뚱뚱한 Windows 클라이언트를 만드는 것이 좋습니다. 일반적으로 웹 앱은 씬 클라이언트에 적합합니다.

당신은 자바 스크립트와 모든 정렬 및 편집 클라이언트 측을 할 수 있지만은 매우 좋은 생각이 될 것입니다. 나는 말하고 싶다 : 당신의 서버와 데이터베이스가 자신이 잘하는 일을하도록하라. 그리고 당신의 애플리케이션에서 그들의 역할을 최소화하는 것에 지나치게 신경을 쓰지 말라.

+0

+1 : 백분율에 예. –

+0

@ Jeff : 음, 백 번째 세기에 +1은 여전히 ​​1입니다. :) – MusiGenesis