2011-03-25 4 views
2

XSD와 함께 매우 큰 XML 데이터 집합이 있습니다. 하나의 XML은 최대 300MB 일 수 있습니다.큰 파일에 XML 직렬화를 사용해야합니까?

XML에서 SQL Server로 데이터를 이동해야합니다.

나는 마이크로 소프트가이 객체로 XML을 매핑 할 때, 그것은 메모리에 모든 데이터를로드, 내가 약 걱정하고 문제를 객체 http://msdn.microsoft.com/en-us/library/182eeyhh.aspx

에 XML을 매핑하는 직렬화 라이브러리를 가지고 있음을 발견? 만약 그렇다면, 나는 그것을 사용할 수없는 것 같습니다.

그래서 XmlTextReader는 줄 단위로 읽고 데이터베이스에 데이터를 저장하는 것과 같은 제 경우에 가장 좋은 방법입니다.

+1

이 마이그레이션은 일회성 작업입니까, 아니면 정기적으로 수행해야합니까? –

+0

XML 데이터 구조는 얼마나 복잡합니까? 간단하다면 몇 가지 해결 방법이 있습니다. –

+0

@conqenator XML 파일은 항상 매일 제공됩니다 ... XML에서 데이터베이스로 데이터를 이동하는 서비스를 작성해야합니다. 그래서 규칙적입니다 – jojo

답변

1

예, .NET에서 XML 직렬화는 모든 것을 한 번에 메모리로 읽습니다.

더 효율적인 메모리 접근 방식은 System.Xml.XmlReader를 사용하여 내용을 한 줄씩 읽는 것입니다.