문제

난 경험이 풍부한 프로그래머에서 기존의(아직 객체 지향적)개발 도구로 전환하는 C#/.Net.쓰고 있어요 작은 단일 사용자 응용 프로그램을 사용하여 SQL server CE3.5.내가 읽는 개념적 데이터 집합 및 관련 문서와 나의 코드 작동합니다.

지금 내가 있는지 확인하려면하고 있어요 그것은"오른쪽",일부 의견을에서 경험했다.Net/SQL 서버 코더,종류에서 얻을 수 없을 읽 doc.

나는 것으로 나타났는 이와 같은 코드에서는 몇 가지 장소:

var myTableDataTable = new MyDataSet.MyTableDataTable();
myTableTableAdapter.Fill(MyTableDataTable);

... // other code

에서 하나의 사용자 응용 프로그램,당신은 일반적으로 그냥 이렇게 하면 응용 프로그램이 시작될 때,인스턴스화 데이터 테이블 개체에 대한 각각의 테이블에 저장한 후 심판하는 그렇게 당신이 이제까지만 사용하는 하나의 개체에 이미 가득한 데이터?이 방법은 당신이 이제까지만 읽기 데이터에서 db 한 번의 대신으로 여러 번 나옵니다.나가의 오버헤드이 너무 작아서 그것은 단지는 상관 없(할 수 있는 비생산적으로 대형 테이블)?

도움이 되었습니까?

해결책

세륨을 위해,그것은 아마도 아닌 문제입니다.는 경우 밀어했다는 이 앱을 사용자의 수천은 그들의 모 타격 중앙 집중식 DB,할 수 있는 시간을 보내고 싶어에 최적화.단일 사용자는 인스턴스의 DB 에 다음과 같 CE 지 않는 한,당신은 데이터는 최적화가 필요 없어,모든 시간을 보내고 그것에 대해 걱정 합니다.조산 최적화 등입니다.

다른 팁

이 방법을 결정하는 바리스 사이에 2 개의 주요 몇 가지 1.는 데이터가 될 것에 액세스하는 지속적으로 2.가 많은 양의 데이터

는 경우 constanty 의 데이터를 사용하여 테이블,그런 다음 로드 그들이 처음에 사용.는 경우에만 가끔한 데이터를 사용하여 작성할 경우 테이블이 필요한 후 폐기합니다.

예를 들어,10 개 있는 경우 gui 화면에만 사용하 myTableDataTable1 들에 그것을 읽는 화면입니다.

선택 정말에 의존하지 않 C#다.이것을 매우 균형이:

  1. 얼마나 자주 당신은 데이터를 사용하는 코드에서?
  2. 그리고 이러한 데이터를 변경(그리고 당신이 관리하는 경우 그것은 않는)?
  3. What's 의 상대적(시간)비용의를 받고 다시 데이터를 비교하여,다른 모든 당신의 코드입니까?
  4. 얼마나 값 당신에 넣 성능, 대 개발자 노력/시간 (이를 위해 특정 응용 프로그램)?

일반적으로:생산을 위한 응용 프로그램,데이터 변경되지 않은 종종,나는 가능하게 만들 DataTable 면 다음에 참조로 당신이 언급한다.또한 배치하는 것을 고려하십시오 데이터에서의 입력 모음/목록/는 사전 대신 DataTable 클래스 일반적인 경우,다른 아무것도 없기 때문에 그것을 컴파일러를 잡을 직관적 인 인터페이스를 사용하여 실수입니다.

에 대한 간단한 유틸리티를 실행에 대한 자는"시작,가 끝나",그것은 아마도 노력이 가치가 있습니다.

당신은 당신에 대해 묻는 Windows CE.에서는 특별한 배려,나는 것이 가장 가능성이 수행 쿼리에 한번만에 개최 결과입니다.모바일 Os 를 추가 제약 조건에서는 배터리와 공간 데스크탑 소프트웨어는 하지 않습니다.기본적으로,모바일 OS 를 만드는 총알#4 훨씬 더 중요합니다.

매번 당신은 다른 추가 검색을 통화에서 SQL,당신은 통화를 외부 라이브러리는 더 많은 종종 의미하는,당신은 아마 실행하는 더 이상 할당하고 더 많은 메모리를 해제 더 자주(추가하는 단편화),및 원인 데이터베이스를 다시 읽기에서 플래시 메모리.그것은 대부분 더 많이 보유 데이터를 일단 당신이 그것을 가지고 가정할 수 있는(총#2).

그것은 쉽게 그 답을 이 질문에 대해 생각할 때 데이터는"세션"의 데이터입니다.당신을 채우는 데이터 집합;당신이 그들과 함께 일;그리고 당신은 데이터를 넣어 다시 또는 버릴 때 그것을 당신이 완료됩니다.그래서 당신은 질문을 해야 합 다음과 같다:

  1. 어떻게 현재의 데이터가 필요로 하는가? 당신은 항상 필요가 매우 매 최신,또는 데이터베이스에 변경되지 않는다.
  2. 당신은 무엇을 사용하여 데이터가? 는 경우에 당신은 그것을 사용해 보고,그때 쉽게 채울 수 있습 데이터 집합,실행,보고서,그리고 데이터 집합이다,그리고 다음에 새로운 하나입니다.는 당신에게 더 많은 현재 어쨌든 데이터.
  3. 얼마나 많은 데이터에 대해 얘기해 보겠습니다. 당신이 말했듯 당신과 함께 작업이 상대적으로 작은 데이터 집합에 있는 중요한 메모리에 영향을 로드하는 경우 그것은 모두에서 메모리 잡고 있다.

때문에 당신이 말한 그것은 단일 사용자 사용하지 않고 응용 프로그램의 많은 데이터,나는 당신이 안전한 로딩에서 모든 것에는 시작을 사용하여,그것은 당신의 데이터 집합 및 그 후 업데이트에서 가깝습니다.

중요한 것은 당신이 염려할 필요가와에서 이 시나리오:어떤 경우 응용 프로그램이 종료 비정상으로 인해 충돌,정전,etc.?이 사용자가 잃은 그의 모든 작동하는가?하지만 그렇다면,데이터 집합은 매우 쉽게를 직렬화하므로,당신이 운이 좋다면 당신은 매우 쉽게 구현"장 그래서 종종"절차를 직렬화하여 데이터 집합 내용을 디스크에서 사용자를 잃지 않을 것이 많은 작업입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top