Проблема с производительностью при перекрестном применении XML:
DataTable имеет 1300 записей, а поле xmldata имеет 250 узлов, поэтому запрос выполняется 1300 * 250 раз, чтобы получить результат, а время выполнения занимает некоторое время... около часа для создания 325000 строк. Кто-нибудь сталкивается с подобной проблемой с большим набором данных? Ваша помощь высоко ценится.
Пример XML:
<dataModel>
<Colum1>
<value />
<displayText />
<controltype>textbox</controltype>
<label>Field1</label>
<controlid>4458575-b0d3-ff4d-01ac-5447e21234dd</controlid>
</Colum1>
<Colum2>
<value />
<displayText />
<controltype>textbox</controltype>
<label>Field2</label>
<controlid>5a5b7b7e-7b66-1f0d-a562-9d0660a74e11</controlid>
</Colum2>
....
</dataModel>
select t.c.value('(local-name(.))[1]', 'nvarchar(100)') as keyname ,
t.c.value('(controlid)[1]', 'nvarchar(200)') as controlid,
t.c.value('(label)[1]', 'nvarchar(500)') as label
from DataTable xmldata
CROSS APPLY xmldata .nodes('/dataModel/*') T(c)
Спасибо