我想要完成的任务是将XML文件导入SQL Server。一旦准备好空表,我将加载整个XML文件并填充该表。通过搜索,我发现SQL Bulk Insert非常适合此任务,所以我测试了以下代码并成功运行:
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文件大约有1860个节点(30kb),非常小,但上述过程需要5分钟以上才能导入整个文件。有没有任何方法可以加快此过程? 我还阅读到SQL Server 2008存在一个影响批量对象的错误。 有什么提示吗?