扫描XML变量或创建临时表是否更好?

时间:2013-06-27 03:22:13

标签: sql xml performance optimization

我有一个接受XML参数的存储过程。截至目前,我目前的实现是使用此方法扫描我的SP的主体中的XML的节点:

SELECT
tbl.col.value('col1[1]', 'varchar(100)') as colA
tbl.col.value('col1[2]', 'varchar(100)') as colB
tbl.col.value('col1[3]', 'varchar(100)') as colC
tbl.col.value('col1[4]', 'varchar(100)') as colD
FROM @xmLInput.nodes('//root/elem1') as tbl(col)

现在我正在考虑优化我的SP。我的一个朋友建议将@xmlInput的所有值存储在一个表中,并在我的SP中使用该表,而不是在@xmlInput中为我的其余SP使用SELECT。

你们认为把它放在临时桌子上会更好吗?

1 个答案:

答案 0 :(得分:0)

我会尝试两种方式。我在我的代码中做了,发现XML比临时表快8倍。我还尝试使用一切作为常量动态生成查询,这比XML快10倍。