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