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

Откуда: Красноярск
Сообщений: 212
проблема такая:
перед обработкой XML данных, которые хранятся в XML DB делаю валидацию с использованием XMLType.schemavalidate
на небольшиих XML данных все работает относительно быстро, но вот когда вызываю метод XMLType.schemavalidate для XML которой порядка 30000 узлов (а каждый узел имеет 5-7 элементов) процесс валидации длится до нескольких часов.

Помогите советом что мне делать, как ускорить процесс? Если не делать валидацию то может оказаться что какого то необходимого тэга нету и потом это боком вылезет при закачке XML данных в таблицу.

Oracle 9.2.0.4 на win2000 server
7 сен 04, 14:32    [940056]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Pohvaloff
Member

Откуда: Красноярск
Сообщений: 212
неужели никто с такой проблемой не сталкивался ?
7 сен 04, 15:36    [940439]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
stdio
Member

Откуда:
Сообщений: 4524
CLOB-ы используешь или объектные типы для хранения XML-ей?
_______________
Alex
There are three kinds of people: those who can count and those who can't
7 сен 04, 15:41    [940483]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Pohvaloff
Member

Откуда: Красноярск
Сообщений: 212
Для храненния использую объектные типы.Таблицу создаю путем регистрации схемы.
7 сен 04, 15:45    [940514]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Pohvaloff
Member

Откуда: Красноярск
Сообщений: 212
этот топик все еще актуален
7 сен 04, 16:35    [940740]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Pohvaloff
Member

Откуда: Красноярск
Сообщений: 212
народ, я вот заметил что все активно помогают товарищу приобрести подешевле Тома Кайта, но ведь он его уже купил. Неужели многоуважаемые участники форума знают только где книжки покупать подешевле а как с XMLями рабортать - нет?
7 сен 04, 17:11    [940921]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Pohvaloff
Member

Откуда: Красноярск
Сообщений: 212
может кто знает другой путь валидации XML данных, без использования XMLType.schemavalidate?
7 сен 04, 18:56    [941337]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
C-Strelok
Member

Откуда: Саянск (Иркутская область), ОАО "СаянскХимпласт"
Сообщений: 631
а я могу сказать только одно.... с XML в эти двери лучше не стучаться все одно тебе не помогут и ничего толкового не ответят..... ни разу не видил что бы на более менее серьезный вопрос тут давали ответ... ни по базам ни по формсам..... а что поделать? да ничего только сидеть и копаться самому....
удачи.....(сказано без сарказма)
7 сен 04, 22:36    [941561]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
stdio
Member

Откуда:
Сообщений: 4524
Pohvaloff
может кто знает другой путь валидации XML данных, без использования XMLType.schemavalidate?
Знаю, конечно. Создай хранимую процедуру на Java в базе и проверяй на здоровье (пример есть в Note:231764.1)

Вообще-то непонятно из-за чего начинает подтормаживать валидатор в исходном случае. Вот что бы узнать:
1) А если хранить как CLOB, то будет ли медленнее или быстрее проходить валидация?
2) Линейна ли зависимость скорости от размера XML-документа? Если линейна, то, скорее всего, это просто медленно работает механизм валидации. Если нет, то скорость валидации начинает деградировать, тоже скорее всего, из-за снижения скорости обращения к XML-документу (его узлам).
8 сен 04, 10:11    [942072]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
stdio
Member

Откуда:
Сообщений: 4524
Да, кстати, проверь в обыкновенной Java программке через валидатор в Oracle XDK как быстро будет выполняться проверка документа. (ну и через Apache-вский для сравнения ещё)
_______________
Alex
There are three kinds of people: those who can count and those who can't
8 сен 04, 10:17    [942105]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Pohvaloff
Member

Откуда: Красноярск
Сообщений: 212
2stdio
как будет работать если хранить в CLOB я не знаю но мне кажется медленней да и работать с таким XML не удобно.
Линейность зависимости скорости обработки от объема данных тоже не довелось проверить, но одно знаю точно - эта зависимость есть.

по поводу:
"Да, кстати, проверь в обыкновенной Java программке через валидатор в Oracle XDK как быстро будет выполняться проверка документа."
это как? написать Java программулину которая юзает jar'ы оракловые?

я пробовал делать проверку получившегося большого XML в XMLSpy (при этом парсер в системе у меня от Microsoft) - проверяет на ура - несколько секунд и все.

а пример погляжу обязательно. Пока я правда сделал так чтобы та софтина что генерит XML данные для оракла разбивала их на части.
8 сен 04, 11:11    [942386]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
stdio
Member

Откуда:
Сообщений: 4524
Pohvaloff
2stdio
как будет работать если хранить в CLOB я не знаю но мне кажется медленней да и работать с таким XML не удобно.
А разве пользователь видит как XMLType хранится? Потом, после проверки можно перегрузить всегда тут же куда надо.
Медленнее будет - я не знаю. Это лучше проверить.
Pohvaloff
Линейность зависимости скорости обработки от объема данных тоже не довелось проверить, но одно знаю точно - эта зависимость есть
Значит, возможно доступ к узлам идёт неоптимальным способом.
Pohvaloff
по поводу:
"Да, кстати, проверь в обыкновенной Java программке через валидатор в Oracle XDK как быстро будет выполняться проверка документа."
это как? написать Java программулину которая юзает jar'ы оракловые?

я пробовал делать проверку получившегося большого XML в XMLSpy (при этом парсер в системе у меня от Microsoft) - проверяет на ура - несколько секунд и все.

а пример погляжу обязательно. Пока я правда сделал так чтобы та софтина что генерит XML данные для оракла разбивала их на части.
Да, именно простую пограммку на Java, использущую Oracle Java XDK
8 сен 04, 11:32    [942506]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Pohvaloff
Member

Откуда: Красноярск
Сообщений: 212
2stdio
а по поводу хранения XML в CLOB так этот варант вообще помоему бесполезный, потому как свалидировать CLOB не получится-только XMLType и все, а раз XMLType значит см.пункт 1 :-) (т.е. вернулись к той же проблеме)
Хотя тут возможен вариант: если хранить в CLOB а валидировать путем создания XMLType объекта (при создании из CLOB происходит валидация) то возможно в этом случаем и быстрее будет. Сейчас проверю этот способ.

автор
Значит, возможно доступ к узлам идёт неоптимальным способом.

имеется ввиду неоптимальность доступа оракловых средств или неоптимальность алгоритма обработки (тех хранимых процедур что я написал)?
8 сен 04, 15:44    [943841]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
stdio
Member

Откуда:
Сообщений: 4524
Pohvaloff
2stdio
а по поводу хранения XML в CLOB так этот варант вообще помоему бесполезный, потому как свалидировать CLOB не получится-только XMLType и все, а раз XMLType значит см.пункт 1 :-) (т.е. вернулись к той же проблеме)
А STORE AS CLOB не получится? Или я что-то упускаю?
Pohvaloff

Хотя тут возможен вариант: если хранить в CLOB а валидировать путем создания XMLType объекта (при создании из CLOB происходит валидация) то возможно в этом случаем и быстрее будет. Сейчас проверю этот способ.

автор
Значит, возможно доступ к узлам идёт неоптимальным способом.

имеется ввиду неоптимальность доступа оракловых средств или неоптимальность алгоритма обработки (тех хранимых процедур что я написал)?
Я имею ввиду доступ оракловых средств. Валидиатор вряд ли знает что-то про физическое хранение документа в Oracle.
8 сен 04, 15:54    [943904]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Pohvaloff
Member

Откуда: Красноярск
Сообщений: 212
да про STORE AS CLOB я что то забыл совсем. Но работать(валидировать и обрабатывать) в PL/SQL однозначно придется с XMLType так что я думаю это проблему не решит.
8 сен 04, 16:06    [943962]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Dimastyi
Member

Откуда:
Сообщений: 13
Добрый день!

Столкнулся с такой же проблемой. Валидация большого XML документа размером 8Mb происходит очень медленно. Документ гружу из bfile, помещаю тоже в XMLType и вызываю метод валидации по схеме.

Пробовал валидировать XML внутри java программулины, как предлагал сделать коллега stdio. Тоже медленно.

Может есть у кого-нибудь другие идеи?

С уважением, Дмитрий.
29 сен 04, 10:04    [995046]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
Pohvaloff
Member

Откуда: Красноярск
Сообщений: 212
Я эту проблему не смог разрешить и потому сделал разбиение XML на части, благо логика структуры позволяет это сделать.
29 сен 04, 13:09    [996129]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
PetrovL
Member

Откуда:
Сообщений: 170
Могу сказать, что скорость даже формирования XMLTYPE-данных отличается на 10-ой версии по сравнению с 9-ой
хотя валидность проверяется очень небыстро (не быстрее чем формируется XML). Да и странно, мне не удалось добиться того, что документы из столбца были валидны соответствующей зарегистрированной схеме. Причем, простое копирование в XMLDSpy говорит, что они валидны. Мое ИМХО - часть работы с XMLType в Оракл - реально сырая, и нуждается еше в доработке.
14 окт 04, 18:37    [1035206]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Валидация XML  [new]
Yokohama
Member

Откуда: Moscow
Сообщений: 85
stdio
(пример есть в Note:231764.1)

Не понял на счет Note:231764.1 - это где?
19 май 08, 16:40    [5684532]     Ответить | Цитировать Сообщить модератору
 Re: Валидация XML  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
Yokohama
stdio
(пример есть в Note:231764.1)

Не понял на счет Note:231764.1 - это где?

тут
19 май 08, 17:05    [5684767]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить