У меня есть один SQL таблицу с колонкой XML, который содержит значение, как показано ниже XMLXQuery где проверить проблему производительности с SQL Query
<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>Administrator</UserName>
<Access>Allow</Access>
<IsInherited>false</IsInherited>
<ApplyTo>This object only</ApplyTo>
<Permission>Read All Properties</Permission>
<Permission>Delete</Permission>
</ACEInformation>
<ACEInformation>
<UserName>Admin2</UserName>
<Access>Allow</Access>
<IsInherited>false</IsInherited>
<ApplyTo>This object only</ApplyTo>
<Permission>Read All Properties</Permission>
<Permission>Delete</Permission>
</ACEInformation>
</Dacl>
</Security>
Здесь моя потребность, я должен запросить все значения UserName, которые имеют значения Доступ: Разрешить и Разрешение: Удалить. Для этого я использую следующий XQuery.
Select xmlColumn.query('for $item in (/Security/Dacl/ACEInformation[Access="Allow"][Permission="Delete"]/UserName) return concat($item,";")').value('.','NVARCHAR(MAX)') from myTable
Он возвращает значение: администратора; ADMIN2 для выше XML. запрос работает нормально ... но производительность очень низкая, он занимает 1 минуту на 1000 строк.
Можете ли вы предоставить лучший xquery для этого случая?
Благодаря Микаэл .it хорошо работает и проблема производительности мой PBM не в запросе – kombsh
Привет Микаэля, у меня есть еще один вопрос, может вас Помоги мне? пожалуйста, проверьте этот вопрос --- --- http://stackoverflow.com/questions/20188220/xquery-exists-check-in-select-sql-query – kombsh