我有一个很大的 xml 流,我传递给一个存储过程,但是我在 xml 的特定部分得到了将近 1.30 分钟的长响应时间,并且重复了很多。
我检查了执行计划,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)
谢谢您的帮助!