2012-05-17 2 views
1

내 응용 프로그램은 현재 FileSystemWatcher 객체를 구현하여 파일 (Input.xml)을 만드는 디렉토리 (C : \ Incoming)를 모니터링합니다.가장 빠른 파일 읽기 방법

현재 Streamreader 개체를 사용하여 파일을 내 응용 프로그램에 읽지 만 데이터가 SQL Server 데이터베이스에서 작업을 수행하는 데 사용된다는 점을 감안할 때 성능에 대해 우려하고 있습니다.

파일을 메모리로 가장 빠르게 읽는 방법은 무엇입니까 (아니면 이미 사용하고 있습니까?).

+0

파일의 크기 범위는 무엇입니까? 정확한 코드를 사용하여 해당 파일을 읽으십니까? –

+2

시스템의 가장 느린 부분 (물리적 디스크)과 상호 작용합니다. 실적을 괴롭힐 이유는 없습니다. 더 빨리 * 필요하면 * 입력 된 폴더에 RAM 디스크 나 SSD를 사용할 수 있습니다. – tzerb

+1

SQL Server는 어떤 역할을합니까? _ "그러나 SQL Server 데이터베이스에서 작업을 수행하는 데 데이터가 사용될 것이라는 점을 감안하면 성능에 대해 우려하고 있습니다."_ 파일에서 SQL Server로 ** 대량 가져 오기 **를 수행 할 수 있습니다. http://msdn.microsoft.com/en-us/library/ms188365.aspx –

답변

1

표준 작업 방식을 사용하고 있습니다.

데이터베이스에 데이터 (큰 데이터)를로드해야하는 경우 행을 하나씩 삽입하는 대신 BULK INSERT 기술을 사용하지 않는 한 병목 현상이 코드와 데이터베이스간에 발생합니다. 세부 사항은 특정 데이터베이스 서버에 따라 다릅니다. 그러나 파일이 상대적으로 작 으면로드가 더 균등하게 분산되므로 걱정할 필요가 없습니다. 그때조차도 디스크 액세스의 속도는별로 신경 쓰지 않습니다.

파일을 읽기 전에 파일이 완전히 작성되었는지 확인하십시오. 예를 들어 독점 독서를 위해 열어보십시오. 특히 파일이 완전히 도착할 때까지 기다리지 않아도되기 때문에 많은 파일이 도착할 것으로 예상되는 경우, 파일 조작이 작성 조작과 반대되는 이름 바꾸기 조작을 통해 파일에 액세스 할 수있는 경우 조금 도움이됩니다. 쓴. 이것은 기본적으로 파일을 처음 보지 않은 파일 이름으로 작성해야 함을 의미합니다.