2012-08-13 4 views
0

DVD와 같은 읽기 전용 파일 시스템에서 실행해야하는 대형 데이터베이스 (약 3.5GB)가있는 응용 프로그램이 있습니다. 그래서 내 프로그램은 하드 디스크에서 잘 작동하지만 DVD로 시작하는 것은 너무 느립니다.DVD에서 시작하는 속도가 너무 느립니다.

제 질문은 DVD로 빠르게 실행되도록 프로그램을 최적화하는 방법입니다.

+0

로드하는 동안 예외를 포착하고 무시합니까? – Steve

+0

DVD (또는 다른 광학 드라이브)는 본질적으로 고정 하드 드라이브 또는 대부분의 USB 드라이브에 비해 느린 매체입니다. 또한 읽기 전용 데이터베이스를 실행중인 경우 해당 데이터에 대한 파일 액세스를 처리하는 제 3 자 코드를 사용하여 많은 작업을 수행 할 수 없습니다. 정말로 DVD로 실행해야합니까? 예를 들어, 하드 디스크의 읽기 전용 폴더에서 실행할 수 있습니까? –

+0

정확하게 내 응용 프로그램은 학습 패키지이며 실행 DVD를해야합니다. – KF2

답변

0

이것은 데이터베이스의 종류에 따라 전적으로 다릅니다. 행 기반이라고 가정합니다.

데이터베이스를 빨리 읽으려면 첫 번째 단계는 데이터베이스를 정렬하는 것입니다. 이는 이진 검색을 사용하여 특정 행을 매우 신속하게 검색 할 수 있기 때문에 중요합니다.

DVD에서 검색 할 때 RAM에 3.5Gb를로드하는 것은 DVD를 리핑하는 것만큼 오래 걸릴 것이므로 프로그램이 느리게 시작될 것입니다. 사전의 각 문자 시작에 대한 페이지 번호와 같은 특정 행의 위치를 ​​가리키는 색인을 만드는 것을 고려하십시오. 그런 다음 필요한 행을 찾기 위해 데이터베이스의 작은 부분 만로드하면됩니다. 그런 다음 요구 사항 순서대로 부분을로드하여 RAM에 사전을 천천히 만듭니다 (즉, 무언가를 검색 할 때 먼저 해당 부분을로드하십시오).

특히 DVD는 더 빨리로드 할 수 있습니다. 스트리밍 압축 유형 (GZip 어쩌면, C#이 기본적으로 지원)을 사용하면 데이터를 빠르게 가져올 수 있습니다.

다시 말하지만, 이는 전적으로 여러분이하는 일에 달려 있습니다. 이것은 단지 일반적인 제안 일뿐입니다.

+0

정확히 어떤 부분으로 내 데이터베이스를 쪼개서 데이터의 일부가 필요할 때 RAM에 데이터 부분을로드 할 때 – KF2

+0

분명하지만 작은 부분을 만들려고 했습니까? – AStupidNoob

+0

나는 이것을 더 많이 사용하지는 않았다. – KF2

1

애플리케이션을 프로파일 링해야합니다. 앱로드가 3 배나 빨라지는 은색 탄환이 없습니다. 분석, 프로필, 대기 시간을 유발하는 데이터 확인

관련 문제