SQL Server로 가져 오기 XML 파일을 가져 오려고합니다. 일단 빈 테이블을 준비하면 전체 XML 파일을로드하고 해당 테이블을 채 웁니다. 아주 작은XML 파일을 SQL Server로 가져 오는 것이 너무 느립니다.
이INSERT INTO Products (sku, product_desc)
SELECT X.product.query('SKU').value('.', 'INT'),
X.product.query('Desc').value('.', 'VARCHAR(30)')
FROM (
SELECT CAST(x AS XML)
FROM OPENROWSET(
BULK 'C:\Products.xml',
SINGLE_BLOB) AS T(x)
) AS T(x)
CROSS APPLY x.nodes('Products/Product') AS X(product);
내 XML 파일 (30킬로바이트), 약 1860 노드를 계산하지만, 위의 절차 가져올 5 분 이상 소요 : 잘 실행 다음 코드를 테스트 그래서 나는 SQL 대량 삽입이 적합하다는 것을 발견 인터넷 검색 전체 파일. 이 과정을 시작할 기회가 있습니까? 또한 SQL Server 2008에는 대량 개체에 영향을주는 버그가 있음을 읽었습니다. 힌트가 있습니까?
당신은 C# 또는 다른 언어로 XML을 구문 분석하고 응용 프로그램을 통해 그것을 가져 오는 것이 더 낫다보십시오. – Oded
네가 맞다. 첫 번째 시도는 C#을 사용하여 XML을 가져 오는 것이었지만 SQL Server의 대량 프로 시저가 더 안정적이라고 생각했습니다. – Ras
XML과 관계형 데이터베이스는 일반적으로 적합하지 않습니다. – Oded