被多次问到,为什么在DBA的规范中,会要求在解析xml值时,value 方法的 XPath 中要加 text() 函数,看起来似乎加与不加得到的结果都是一样的。
下面的测试脚本说明使用 text() 的区别,以及为什么要求使用它。
DECLARE
@xml xml
SET @xml = N’
b
’;
SELECT @xml.value(‘(/a)[1]‘, ‘varchar(10)’);
SELECT @xml.value(‘(/a/text())[1]‘, ‘varchar(10)’);
SELECT @xml.value(‘(/b)[1]‘, ‘varchar(10)’);
SELECT @xml.value(‘(/b/text())[1]‘, ‘varchar(10)’);
执行这个脚本,从结果中,可以看出明显的区别
通过对比执行计划,可以看出两者的执行有明显的差别,效率也有明显的差异。不使用 text() 的情况下,需要额外的执行步骤用于检索子结点的数据(就算子结点,开销仍然存在)。
所以,如果不是有特殊目的,应该在 XPath 中指定 text() 函数实现精确定位,以此来降低性能开销。
韩剧再婚皇后1080p迅雷磁力链接分享-韩剧再婚皇后高清完整版迅雷云盘下载1080P(4k)资源
如果我不曾见过太阳高清无删减夸克在线看-如果我不曾见过太阳蓝光高清1080p无删减资源夸克免费转存
如果我不曾见过太阳阿里云盘全集高清1080P资源链接-如果我不曾见过太阳免费阿里云盘资源下载4K高清无删减版链接
罚罪1+2全80集阿里云盘全集资源链接-罚罪1+2全集高清1080P/4K阿里云盘资源下载无删减
邵氏精品禁品未删减资源在线看-必看的50部邵氏电影无删减观看入口
羞羞漫画高清最新资源-正规平台免费入口与无删减资源导航