SQL Server Compact Edition 파일에 항목을 저장하는 wpf 응용 프로그램이 있습니다. 이 파일은 데이터 컨텍스트를 구성하는 클래스 목록에서 동적으로 생성됩니다. 다음과 같은 시나리오가 발생하면로드 시간이 느려집니다. 내 응용 프로그램에이를 얻으려면 내가로드 내 데이터 컨텍스트에서 표 1, 표에 표 2 및 표 2SQL Compact Edition 읽기 속도가 증가합니다.
에서 링크 표이 링크를
ItemB
의 목록을 포함 ItemA의 목록을로드하려고SQL Server의 모든 Table1 행 각 Table1 행이 반환 된 경우 새 항목에 정보를 추가합니다. 그런 다음 링크 테이블을 통해 현재 Table1 행에 링크 된 Table2 행을 찾습니다. 반환 된 모든 Table2 행에 대해 ItemB의 목록으로 변환하여 ItemA에 추가합니다.
결국 ItemB 목록을 포함하는 ItemA 목록으로 끝납니다. 문제는 내가 DB를 여러 번 호출하고 있는데 이것은 수백 개의 항목을 가져올 때로드 시간을 늘리는 것입니다. 여러 번 호출하지 않고도이 작업을 수행하는 더 좋은 방법이 있습니까? 앱 속도를 향상시키는 가장 좋은 방법은 무엇입니까? 나는 ItemA를 캐싱해야 하는가? 그렇다면 가장 좋은 방법은 무엇인가?
지금까지 답변을 기반으로 한 사실과 내가 앱 (1 분로드 시간에서 밀리 초까지)을 처리하는 유일한 방법은 모든 내 객체를 디스크에 직렬화하고로드시 메모리로 다시 가져 오는 것입니다. SQL 서버 CE를 완전히 버리는 것을 생각합니다. 나는 결국이 응용 프로그램을 Windows 8 Metro로 포팅하고 싶습니다. SQL CORE를 지원하지 않기 때문에 더 많은 이유가 있습니다. - 누군가 직렬화 된 파일의 크기가 커지기 전에 자랄 수 없거나 다른 이유로 나쁘다고 생각하는 사람이 있습니까? – Oli