私が達成したいタスクは、XMLファイルをSQLServerにインポートすることです。空のテーブルを準備したら、xmlファイル全体をロードしてそのテーブルに入力します。グーグルSQL一括挿入が適切であることがわかったので、正常に実行される次のコードをテストしました。
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分以上かかります。このプロセスをスピードアップするチャンスはありますか?また、SQLServer2008にはバルクオブジェクトに影響を与えるバグがあることも読みました。ヒントはありますか?