Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 XQuery vs OPENXML  [new]
__ctrl-c__
Guest
Вопрос может немного холиварный, но все же очнеь хотельсь бы услышать мнение опытных людей. У меня есть некий XML и мне необходимо вычитать его в виде роусета, чем предпочтительней восмользоваться XQuery или OPENXML:

declare @x xml = '
<Records>
  <Material>
    <Title>WIC-1T, Інтерфейсний модуль 1-Port Serial WAN Interface Card</Title>
    <mtId>1003051</mtId>
  </Material>
  <Material>
    <Title>WIC-1T, Інтерфейсний модуль 1-Port Serial WAN Interface Card</Title>
    <mtId>1003051</mtId>
    <Margin/> 
  </Material>  
</Records>  '

select 
   x.value('Title[1]','varchar(150)') 
  ,x.value('mtId[1]','int') 
  ,x.value('Margin[1]','money') 
from @x.nodes('/Records/Material') r(x)

DECLARE @iDoc int
EXEC sp_xml_preparedocument @iDoc OUTPUT, @x
SELECT *
 FROM OPENXML(@iDoc, '/Records/Material',2)
    WITH (
       Title                       varchar(150)  
      ,mtId                        Int           
      ,Margin                      Money         
        )                                     
EXEC sp_xml_removedocument @iDoc
GO
go



из лично увиденого в профайлере: XQuery чисто по дюрейшн хуже чем OPENXML и грузит онли ЦПУ (чем больше обращений типа .value тем больше), в то время как OPENXML дает мало ЦПУ, зато дает ридсы/врайтсы пропорционально размеру документа.

Так все же что предпочтительней при работе с XML: XQuery или OPENXML и есть ли какие то родные рекомендации по применению? MSDN облазил особо ничего не нашел, поиском пользовался нашел 1 тему в которой так ни до чего и не договорились.
18 янв 12, 15:55    [11926536]     Ответить | Цитировать Сообщить модератору
 Re: XQuery vs OPENXML  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Предпочтительней XmlBulkLoad.
19 янв 12, 17:08    [11934424]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить