1
我有一个很大的XML流,我传递给存储过程,但我得到了一个很长的响应时间几乎1.30分钟的特定部分的XML重复很多。XML花费很长时间解析MSSQL
我检查了执行计划,2个xml结构部分几乎占用了所有的处理时间。我也尝试在插入之前先将它读入2个临时表中,而不是帮助它。 XML的大小是368Kb,所以我有强烈的怀疑,我的xml要么是不可靠的,要么我缺少一些东西来帮助缓解解析。
有没有更好的方式来制定xml,使Xpath()更容易解析?我真的不知道还有什么要做。
的XML的结构是:
<root>
<someobject>
<param1></param1>
<param1></param1>
</someobject>
<somethingelse>
<param1></param1>
<param1></param1>
</somethingelse>
<row1>
<param1></param1>
<param1></param1>
<param1></param1>
<param1></param1>
<param1></param1>
<param1></param1>
<param1></param1>
<param1></param1>
</row1>
查询我目前使用的:
Insert Into [Table]
Select
XmlParam.Doc.value('fieldA[1]','UNIQUEIDENTIFIER')
,XmlParam.Doc.value('fieldB[1]','UNIQUEIDENTIFIER')
,XmlParam.Doc.value('fieldC[1]','UNIQUEIDENTIFIER')
,XmlParam.Doc.value('fieldD[1]','UNIQUEIDENTIFIER')
,XmlParam.Doc.value('fieldE[1]','UNIQUEIDENTIFIER')
,XmlParam.Doc.value('fieldF[1]','UNIQUEIDENTIFIER')
,XmlParam.Doc.value('fieldG[1]','bit')
,XmlParam.Doc.value('fieldH[1]','bit')
From @Xml.nodes('//Flow/StepData') XmlParam(Doc)
感谢您的帮助!
这样做的伎俩,执行从1.30分钟减少到6秒。 /text()将它指向最终节点,没有它,它指向整个元素。再次感谢!只有在你的回答结束后,我才能找到关于它的帖子:[link](http://milambda.blogspot.com/2007/02/sql-server-2005-xml-methods-part-three.html) – qminator