У меня есть одна таблица SQL с XML-столбец, который содержит значение, как следующий формат XMLSQL в XQuery с цикл
<Security xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Dacl>
<ACEInformation>
<UserName>Authenticated Users</UserName>
<Access>Allow</Access>
<IsInherited>false</IsInherited>
<ApplyTo>This object only</ApplyTo>
<Permission>List Contents</Permission>
<Permission>Read All Properties</Permission>
<Permission>Read Permissions</Permission>
</ACEInformation>
<ACEInformation>
<UserName>Local System</UserName>
<Access>Allow</Access>
<IsInherited>false</IsInherited>
<ApplyTo>This object only</ApplyTo>
<Permission>Read All Properties</Permission>
<Permission>Read Permissions</Permission>
</ACEInformation>
</Dacl>
</Security>
Здесь я хотел бы получить выход из колонки XML, как это
[Разрешить -> Аутентифицированные пользователи -> Содержание списка; Читать все свойства; Разрешения на чтение; -> Этот объект только]
Для достижения этой цели я использую следующие для запроса цикла присоединиться значения
SELECT xmlColumn.query('for $item in/Security/Dacl/ACEInformation return("[",data($item/Access)
[1],"->",data($item/UserName)[1],"->", (for $item2 in $item/Permission return concat($item2,";")),"-
>",data($item/ApplyTo)[1],"]")').value('.','NVARCHAR(MAX)')+' ; ' From myTable
Запрос работает нормально, но это занимает слишком много времени, чтобы дать результат, за 1000 строки, это займет 2 минуты ... может ли кто-нибудь помочь мне улучшить производительность этого запроса ?.
Спасибо за ваш ответ, но моя потребность, я должен объединить все значения и получить как один столбец – kombsh