Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 медленное чтение xml в таблицу  [new]
ioo
Member

Откуда:
Сообщений: 61
есть xml примерно такой:

<root>
<UL IDDOK = "1">
<OK Name = "name11">
<OK Name = "name12">
<OK Name = "name13">
<UL IDDOK = "2">
<OK Name = "name21">
<OK Name = "name22">
<OK Name = "name23">
</root>

надо получить табличку такую :

IDDOK OK_Name
1 Name11
1 Name12
1 Name13
2 Name21
2 Name22
2 Name23

Дело в том, что таких IDDOK около 10000, и помимо узла "OK" узел "UL" содержит еще до кучи чего. файл xml имееть размер примерно 60MB .

Я пока остановился примерно на этом:

select
x.n.value('../@IDDOK', 'int'),
x.n.value('@Name', 'varchar(255)')
from @x.nodes('/root/UL/OK') x(n)

На xml, где документов примерно 400, выполняется за 48 сек. на 10000 документах не смог дождаться...
26 окт 11, 21:56    [11505920]     Ответить | Цитировать Сообщить модератору
 Re: медленное чтение xml в таблицу  [new]
ioo
Member

Откуда:
Сообщений: 61
извините, набирал руками
xml такой примерно:

<root>
<UL IDDOK = "1">
<OK Name = "name11"/>
<OK Name = "name12"/>
<OK Name = "name13"/>
</UL>
<UL IDDOK = "2">
<OK Name = "name21"/>
<OK Name = "name22"/>
<OK Name = "name23"/>
</UL>
</root>
26 окт 11, 21:57    [11505925]     Ответить | Цитировать Сообщить модератору
 Re: медленное чтение xml в таблицу  [new]
ioo
Member

Откуда:
Сообщений: 61
тормозит из-за '../@IDDOK'
26 окт 11, 21:58    [11505931]     Ответить | Цитировать Сообщить модератору
 Re: медленное чтение xml в таблицу  [new]
ioo
Member

Откуда:
Сообщений: 61
не пробовал еще с cross apply. говорят будет быстрее. попробую отпишу.
26 окт 11, 22:07    [11505961]     Ответить | Цитировать Сообщить модератору
 Re: медленное чтение xml в таблицу  [new]
iljy
Member

Откуда:
Сообщений: 8711
ioo,

Mniora на вас нет... Не занимайтесь фигней и используйте XMLBulkLoad.
26 окт 11, 23:04    [11506068]     Ответить | Цитировать Сообщить модератору
 Re: медленное чтение xml в таблицу  [new]
ioo
Member

Откуда:
Сообщений: 61
cross apply помогло.
полминуты на 10000 записях
27 окт 11, 09:28    [11506606]     Ответить | Цитировать Сообщить модератору
 Re: медленное чтение xml в таблицу  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
iljy
Mniora на вас нет...
Скоро так мной пугать будут непослушных детей и сказками на ночь.
iljy
Не занимайтесь фигней и используйте XMLBulkLoad.
Да-да, именно так (8075805):
10697274
9759065
7832193
27 окт 11, 13:22    [11508592]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить