我想要实现的任务是将 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 有一个影响大容量对象的错误。有什么提示吗?