Я получаю ужасную производительность от проекции XQuery в Sql Server.Что было бы лучшим способом написать следующее преобразование?
select DocumentData.query(
'<object type="dynamic">
<state>
<OrderTotal type="decimal">
{fn:sum(
for $A in /object[1]/state[1]/OrderDetails[1]/object/state[1]
return ($A/ItemPrice[1] * $A/Quantity[1]))}
</OrderTotal>
<CustomerId type="guid">
{xs:string(/object[1]/state[1]/CustomerId[1])}
</CustomerId>
<Details type="collection">
{/object[1]/state[1]/OrderDetails[1]/object}
</Details>
</state>
</object>') as DocumentData
from documents
(я знаю, что код немного не в контексте)
Если я проверю план выполнения для этого кода, естьпродолжается более 10 соединений.Должен ли я разбить это, чтобы использовать для $ var для каждого уровня в структуре?
Для большего контекста, это то, что я пытаюсь сделать:"Linq to XQuery переводчик" / эмулятор NoSQL Document DB, фильтрация работает как чудо, проекции страдают от проблем с перфорированием.