powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
18 сообщений из 18, страница 1 из 1
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39445806
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понадобилось обратится из БД к данным в xml, набросал парсер (udf не наш метод)
пока тестировал, обратил внимание, что каждый следующий разбор xml (20 Кб) дольше предыдущего на 50-100 мс
и так до переконнекта при preserve rows или комита при delete rows
если использовать не временную таблицу, то сброса не происходит и время продолжает увеличиваться и после переподключения

подскажите это так индексы влияют? накапливается мусор? или что еще?

Бакап , процедура XML$PARSE_DOCUMENT
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39445807
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл указать сервер

FB 2.5.6
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39445822
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvvait,

И зачем приложил базу
Дабы убедиться что оно действительно начинает тормозить?

подскажите это так индексы влияют? накапливается мусор? или что еще?
На все вопросы ответ Да
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39445846
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvvait,

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

Использование индексов на временных таблицах внутри процедур с и без EXECUTE STATEMENT
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446076
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ни индексы, ни временные таблицы здесь не причем, дело в блобах
изменил таблицу на простую, и вот результаты запроса при парсинге блоба и varchar'а

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
execute block
returns (
  IND integer,
  DUR_MS integer)
as
declare variable ID_DOC bigint;
declare variable ST timestamp;
declare variable FT timestamp;
begin
  IND = 0;
  while (IND < 30)
     do begin
        ST = 'NOW';
        select ID_DOC
        from XML$PARSE_DOCUMENT({XML 20Кб}, 0, 0, 0)
        into :ID_DOC;
        FT = 'NOW';
        DUR_MS = (FT - ST) * 24e0 * 3600e0 * 1000;
        suspend;
        IND = IND + 1;
        end
end



график в приложении

время увеличивается из-за выделения памяти транзакции под блобы, т.к. если выполнить в той же транзакции запрос повторно, для блоба будет также как и для варчара
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446095
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто научил сантехника "писать программы"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446111
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящийкто научил сантехника "писать программы"?

не поверишь, pastor
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446116
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvvait,

парсить BLOB в PSQL гиблое дело. И где процедура парсинга. Разворачивать твой бекап совсем не хочется
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446119
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, вирусов боишься?
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446123
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Vvvait!
You wrote on 28 апреля 2017 г. 14:11:13:

Vvvait> не поверишь, pastorотчего же не поверю?
вполне ожидаемо.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446171
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvvait,

нет. Есть такая штука лень называется. По тексту может чего и сказал бы
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446178
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, а наличие в БД процедуры, вычисляющей xpath такого вида '//*[count(ancestor::*) = 3]/@name' не поборет твою лень?
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446192
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvvait,

может быть вечером и поборет. Пока другие дела есть
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446268
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисvvvait,

может быть вечером и поборет. Пока другие дела есть

восстанавливать текст процедур по BLR
будет еще больше лень
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446270
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в догонку
я не просто так спрашивал 20442187
но автор проигнорировал
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446276
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

а смысл вообще смотреть тогда. В его чудо процедуре и есть проблема. Операции с блобами надо минимизировать чтобы лишние блобы не создавались. Ну тогда пускай автор продолжает есть кактус
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446318
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, увеличение времени вылечено вычищением лишних индексов и конкатенаций блобов
Если интересно, прилагаю бакап с исходником XML$PARSE_DOCUMENT
...
Рейтинг: 0 / 0
XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
    #39446392
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvvait,

зачем бэкап прикладывать... Обычно прикладывают скрипт. Люди же если интересуются, то хотят не рестор делать, а посмотреть в текст.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / XML парсинг без использования UDF, постоянное увеличение времени одного и того-же запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]