0

XML 変数解析コード部分を含む SP があります。

XML には次の構造があります。

<root>
  <ID Reason="1">1</ID>
  <ID Reason="2">2</ID>
  <ID Reason="2">3</ID>
  <ID Reason="1">5</ID>
</root>

SPコード部分:

INSERT INTO #tmp_table (ID,Reason)
SELECT IDs.ID.value('.', 'int')
     , IDs.ID.value('@Reason', 'int')
FROM @I_XML.nodes('/root/ID') AS Ids(ID)

100000 行の XML 入力パラメーターを使用して SP を実行しようとすると、非常に時間がかかり、実行コストは 5% になります。

SPコード部分を改善して高速化するにはどうすればよいですか?

4

2 に答える 2

0

使用してみてくださいOPENXML

declare @hXml int

exec sp_xml_preparedocument @hXml output, @YourXmlParam

insert into #tmp_table
select ID, Reason
from OPENXML(@hXml, '/root/ID') with (ID int '.', Reason int '@Reason')

exec sp_xml_removedocument @hXml
于 2013-07-09T14:03:09.377 に答える