使用TYPE

时间:2016-09-14 18:28:53

标签: xml performance sql-server-2012 concatenation

我正在尝试使用FOR XML PATH连接表中的文本。 使用这个:

SELECT (
SELECT ',' + MyColumn
FROM MyTable
FOR XML PATH, TYPE
).value('.[1]', 'nvarchar(max)')

我得到了我想要的东西(因为我需要未编码的特殊字符) 但是检查查询计划我得到一个不需要的数字,所以比较相同的查询只是删除类型的部分我在查询计划中得到一个更好的数字。 这是我比较的查询

SELECT (
SELECT ',' + MyColumn
FROM MyTable
FOR XML PATH(''))

我说的是一个有400k行的表,我正在使用子查询,但是我想提出一个简单的代码示例,只是为了简化FOR XML的TYPE部分的问题,我得到这些数字:

首先:

enter image description here

第二个我得到:

enter image description here

这是什么原因?

我不仅可以使用第二种,因为这种方式编码特殊字符,我不需要它。 为了获得良好的性能(在查询计划中标记),是否有任何解决方法?

0 个答案:

没有答案