如果我傳遞一個XML參數的存儲過程,看起來像這樣:轉換XML到表中的SQL Server 2005
<ClientKeys>
<ck>3052</ck>
<ck>3051</ck>
<ck>3050</ck>
<ck>3049</ck>
...
</ClientKeys>
...然後將XML轉換爲這樣一個臨時表:
CREATE TABLE #ClientKeys (ClientKey varchar(36))
INSERT INTO #ClientKeys (ClientKey)
SELECT ParamValues.ck.value('.','VARCHAR(36)')
FROM @ClientKeys.nodes('/ClientKeys/ck') as ParamValues(ck)
...溫度tbl填充,一切都很好。然而,填充所述表格所用的時間與xml中'ck'元素的數量嚴格相符 - 我沒有預料到這是因爲沒有迭代步驟。因此,很快填充TBL的時間就會變得太長。
有沒有更快的方法來達到上述目的?
基於你的基準,'long'是'long'多長?迭代步驟隱式執行。我只能發表評論,因爲我不知道如何使操作更快而不是提升硬件:P – 2009-11-05 11:07:02
嗯,這裏調用'FROM @ ClientKeys.nodes(.....)'基本上是對你的「 ck「節點 - 越多,你會得到越多的行。 – 2009-11-05 12:12:35