2010-06-01 7 views
0

ASP.NET 캐시에 정렬 된 ~ 10 행 2 열/키 값 쌍을 많이 저장합니다. 이는 드롭 다운 목록의 데이터입니다. 지금은 모두 공간 효율적이지 않은 모든 DataTable입니다 (데이터 세트에 데이터를 저장할 때 엄지 손가락 크기는 10 배 증가합니다). 새로운 코드에 대한 희망가장 고통스러운 DataTable 대체 데이터 구조는 무엇입니까?

기존 코드

DataTable table = dataAccess.GetDataTable(); 
dropDownList.DataSource = table; 

Unknown data = dataAccess.GetSomethingMoreSpaceEfficient(); 
dropDownList.DataSource = data; 

코드 파손을 최소화하고 ASP.NET에 저장 될 때 직렬화 된 크기를 줄일 수 DataTable을 충분히 비슷 무엇 기존 데이터 구조체 은닉처?

답변

3

키/값 쌍 또는 사전이 더 효율적입니다.

릭 Strahl이 좋은 예에게 세션 ID를 기반으로 XML 파일에 http://www.west-wind.com/Weblog/posts/32508.aspx

+1

내가 동의 XMLDataSource에 dropdownlists를 결합한다. 그는 또한 데이터가 분류되었다고 언급했다. 태스크에 적절한 SortedDictionary 또는 SortedList 데이터 구조. –

+0

아 예. 준비된 맛을 언급하는 것을 잊었습니다! – hearn

+0

모든 열의 이름을 "Key"및 "Value"로 변경해야합니다. 현재 코드는 Column [0], Column [ "description"] 등으로 모든 것을 참조합니다. 여전히 중요한 후보 데이터 구조입니다. – MatthewMartin

0

쓰기 데이터를 가지고, 다음

+0

실제로 메모리 대신 파일 시스템에 오브젝트를 저장하는 캐싱 시스템을 작성하고 있습니다. 모든 사용자 정의 롤링 캐싱 시스템을 사용하면 캐시 퇴거 정책 (데이터베이스에서 수시로 다시로드)을 다시 구현할 필요가 없습니다. 또한 ASP.NET을 대상으로 이미 구현 한 온 디맨드 캐시 제거를위한 UI가 필요하지 않습니다. 은닉처. – MatthewMartin

+0

XML을 메모리에 저장하고 많은 작업을하지 않고 캐시에 추가 할 수 있습니다. –

+0

당신이 필요로하는 것은 좋은 해싱 알고리즘이라고 생각합니다. SortedDictionary, 사전 및 SortedList에는 Google에서 찾을 수있는 많은 성능 문제가 있습니다. 그것은 당신의 작업을 단순하게하지만 성능 문제에 도움이되지 않습니다. –

관련 문제