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

Откуда:
Сообщений: 125
Есть запрос возвращающий данные.Данных много, но запрос отрабатывает нормально(для нас нормально, секунд 5-6).Нужно перевести эти данные в xml .Делаем ему for xml raw,elements XSINIL,XMLSCHEMA и запрос сразу зависает минут на 10-12.Это уже довольно плохо.Можно ли как-то увеличить производительность конструкции for xml?
2 дек 09, 15:55    [8009286]     Ответить | Цитировать Сообщить модератору
 Re: производительность for xml  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Можно по подробнее. Сам запрос, скока данных ...
А то вы так словно типа у всех проблемы и все это знают.
Да, и для чего XSINIL, XMLSCHEMA?
2 дек 09, 16:14    [8009451]     Ответить | Цитировать Сообщить модератору
 Re: производительность for xml  [new]
PokeMan
Member

Откуда: MOSKAU
Сообщений: 312
Как вариант - небольшая де нормализация: хранить уже готовые куски XML. В некоторых случаях приемлемо, особенно, когда нужно "много" и "быстро".
2 дек 09, 16:21    [8009520]     Ответить | Цитировать Сообщить модератору
 Re: производительность for xml  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
PokeMan
Как вариант - небольшая де нормализация: хранить уже готовые куски XML. В некоторых случаях приемлемо, особенно, когда нужно "много" и "быстро".
Ага, лучше день потерять, но за час долететь.
Главное, чтоб "куски XML" не стали гемором.
Не плодите сущностей понапрасну
2 дек 09, 16:38    [8009653]     Ответить | Цитировать Сообщить модератору
 Re: производительность for xml  [new]
Askeros
Member

Откуда:
Сообщений: 125
Mnior
Можно по подробнее. Сам запрос, скока данных ...
А то вы так словно типа у всех проблемы и все это знают.
Да, и для чего XSINIL, XMLSCHEMA?


Сам запрос возвращает около 200000записей , а сам xml получается порядка 100мегабайт.
Этот xml потом обрабатывается программкой, которой XSINIL, XMLSCHEMA нужны(кстати без них разница не очень велика в формировании xml, строк с null не много.Схема простейшая) .

PokeMan
Как вариант - небольшая де нормализация: хранить уже готовые куски XML



Хранить куски xml , даже не знаю, получиться ли.Дело в том, что с данными из которых xml формируется постоянно работа идёт, потом видят, вроде всё хорошо, нажали кнопку он сформировался.

Мы счас думаем в направлении формировать только изменения, но их как правило много может быть(бываю загрузки и обновления потоковые (не оператор)).
2 дек 09, 17:11    [8009844]     Ответить | Цитировать Сообщить модератору
 Re: производительность for xml  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Askeros
Мы счас думаем в направлении формировать только изменения, но их как правило много может быть(бываю загрузки и обновления потоковые (не оператор)).
Подумайте лучше в направлении bcp и обычных текстовых файлов.
2 дек 09, 17:21    [8009906]     Ответить | Цитировать Сообщить модератору
 Re: производительность for xml  [new]
PokeMan
Member

Откуда: MOSKAU
Сообщений: 312
Mnior

Главное, чтоб "куски XML" не стали гемором.
Не плодите сущностей понапрасну

Согласен. Гемор не нужен.

Предложенный мною вариант хорошо работает при условии, что "куски" поддаются какой-то структуризации а, главное что характер работы с данными стремится к insert\delete. XML так же был порядка 100 Мб. Сейчас, правда, от этого ушли ... см пост Senya_L
2 дек 09, 17:27    [8009944]     Ответить | Цитировать Сообщить модератору
 Re: производительность for xml  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Хм. Текстовый формат, оно понятно, но у него клиент (возможно на .Net) требует XML.
Если клиента переделывать может сначала подкрутить XML?
Типа DataSet-ом цепляецо XMLSCHEMA? А XSINIL? Что у вас за клиент?
Как вы сохраняете XML в файл?

Никак не понимаю, зачем elements? Чтоб размер файла был в два раза больше? Если у вас XMLSCHEMA, клиенту должно быть пофигу - пихайте атрибутами.

+ бредни
Если всё таки надо XML, можно взять идею PokeMan:
1. На "пустом" запросе забираете XML с XMLSCHEMA и режете в два файла.
2. Через bcp загоняете основное тело файла, где каждая строка сгенерена через FOR XML, ну вы поняли
3. Соединяем три файла в один одной командой
4. PROFIT!
Главное чтоб кодировка была простой, иначе гемора больше.
2 дек 09, 20:28    [8010805]     Ответить | Цитировать Сообщить модератору
 Re: производительность for xml  [new]
Askeros
Member

Откуда:
Сообщений: 125
Mnior
Что у вас за клиент?
Как вы сохраняете XML в файл?
Никак не понимаю, зачем elements? Чтоб размер файла был в два раза больше? Если у вас XMLSCHEMA, клиенту должно быть пофигу - пихайте атрибутами.


Клиент-программка смежной организации, для неё формирует отчёты по XML.
Не знаю будет ли он работать если элементы заменить на атрибуты, можно попробовать.Спасибо за совет.
3 дек 09, 11:12    [8012537]     Ответить | Цитировать Сообщить модератору
 Re: производительность for xml  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Mnior
Как вы сохраняете XML в файл?
3 дек 09, 14:05    [8014222]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить