Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Долгая загрузка отчета в апексе / 16 сообщений из 16, страница 1 из 1
30.07.2015, 13:47
    #39019616
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
Добрый день.

Писал большой отчет на заказ в pl\sql девелопере. Отрабатывает ~до 3 секунд максимум и использует 1 параметр в 4 местах.
Но при выводе данного отчета с параметром в апексе через простой classic report и айтемом date_picker отчет грузит 15-20 сек.
Прописывал дату жестко в репорте, работал быстро как в девелопере, подставил параметр, опять грузит долго.
Как решить проблему?
...
Рейтинг: 0 / 0
30.07.2015, 14:17
    #39019648
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
mansion,
такая тема была - поищи
...
Рейтинг: 0 / 0
30.07.2015, 15:58
    #39019738
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
mansionДобрый день.

Писал большой отчет на заказ в pl\sql девелопере. Отрабатывает ~до 3 секунд максимум и использует 1 параметр в 4 местах.
Но при выводе данного отчета с параметром в апексе через простой classic report и айтемом date_picker отчет грузит 15-20 сек.
Прописывал дату жестко в репорте, работал быстро как в девелопере, подставил параметр, опять грузит долго.
Как решить проблему?

Количество выводимых строк?
...
Рейтинг: 0 / 0
31.07.2015, 08:38
    #39020040
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
blkangel,

примерно 1.5к. Стояли все выводимые сразу, поменял на 30 на страницу, грузиться стало быстро.
Но в девелопере те же 1.5к грузятся за пару секунд. Значит апекс тратит время на построение таблицы? или как? мне необходимо видеть все строки сразу.
...
Рейтинг: 0 / 0
31.07.2015, 08:58
    #39020058
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
mansionдевелопере он там не все грузит, а видимые
...
Рейтинг: 0 / 0
31.07.2015, 09:04
    #39020062
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
mansionblkangel,

примерно 1.5к. Стояли все выводимые сразу, поменял на 30 на страницу, грузиться стало быстро.
Но в девелопере те же 1.5к грузятся за пару секунд. Значит апекс тратит время на построение таблицы? или как? мне необходимо видеть все строки сразу.

Тут может быть просто браузер долго строит.
В линуксе(аналогию в винде не знаю) можно было бы сделать wget ваш урл.(предварительно страницу сделав public,чтоб без авторизации ,иначе не пропустит)
И посмотреть как долго он отрабатывает.
И если быстро значит апекс отклик делает быстро...а косячит прорисовка.
...
Рейтинг: 0 / 0
31.07.2015, 09:55
    #39020101
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
Petro123,

Я не такой глупый как вы могли подумать, вот скрин времени загрузки всех строк в pl\sql
...
Рейтинг: 0 / 0
31.07.2015, 09:58
    #39020105
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
mansionPetro123,


и в апексе при прописывании даты в сам sql код репорта, работает так же ~2сек. А при подставлении вместо даты айтема проблема с долгой загрузкой снова появляется. Айтем и сам репорт абсолютно простые, без наворотов и плагинов
...
Рейтинг: 0 / 0
31.07.2015, 10:42
    #39020181
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
mansionmansionPetro123,


и в апексе при прописывании даты в сам sql код репорта, работает так же ~2сек. А при подставлении вместо даты айтема проблема с долгой загрузкой снова появляется. Айтем и сам репорт абсолютно простые, без наворотов и плагинов

Тут два момента.
1. Это браузер долго строит, поэтом ограничение строк явно сказывается.
2. Собственно про сами даты. Есть два способа подстановки биндов в запрос. Стандартный :PXX_ITEM, и при помощи использовании функции v('PXX_ITEM').
a) Что происходит при первом методе (:PXX_ITEM), апекс берет запрос, выделяет все бинды в данном запросе и выполняет запрос вида для каждого из них
Код: plsql
1.
select v('PXX_ITEM') into value_bind from dual;


А потом тупо делает замену такого бинда в запросе.
б) При использовании второго метода, функция ни чем не подменяется, а тупо выполняется на лету вместе с запросом.
В зависимости от ситуации, либо первый либо второй случай лучше подходит, например если бинд в условии, а запрос возвращает много строк, то второй метод лучше не брать.

Мне кажется в твой ситуации выход напрашивается такой, используй функцию который возвращает запрос, уже с жестко задонной датой.

declare
v_date_of date:=to_date(:PXX_DATE_ITEM,'DD.MM.YYYY');
Begin
return 'select * from table where date_of='||v_date_of;
End;
...
Рейтинг: 0 / 0
31.07.2015, 10:44
    #39020187
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
А еще можно посмотреть планы и закрепить хинтами.
...
Рейтинг: 0 / 0
31.07.2015, 12:35
    #39020291
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
blkangel,

Где можно почитать про подмену бинденных переменных?
...
Рейтинг: 0 / 0
31.07.2015, 13:30
    #39020365
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
mansionmansionPetro123,

и в апексе при прописывании даты в сам sql код репорта, работает так же ~2сек. А при подставлении вместо даты айтема проблема с долгой загрузкой снова появляется. Айтем и сам репорт абсолютно простые, без наворотов и плагинов
я же тебе писал - поищи такую тему.
...
Рейтинг: 0 / 0
31.07.2015, 13:48
    #39020381
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
mansionи в апексе при прописывании даты в сам sql код репорта, работает так же ~2сек. А при подставлении вместо даты айтема проблема с долгой загрузкой снова появляется. Айтем и сам репорт абсолютно простые, без наворотов и плагинов
у меня 1000 записей из
APEX_040200.WWV_FLOW_ACTIVITY_LOG
грузится 1сек.
Приведи свои тормоза на данном примере. Чтобы я смог проверить.
Удачи!
...
Рейтинг: 0 / 0
31.07.2015, 15:35
    #39020549
Casufi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
irbis_alТут может быть просто браузер долго строит.
Chrome Developer Tools, Firefox Developer Tools даст тебе раскладку по этапам обработки запроса (DNS, Обработака сервером, постоение DOM)
...
Рейтинг: 0 / 0
31.07.2015, 16:44
    #39020648
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
Gustlyblkangel,

Где можно почитать про подмену бинденных переменных?

Это я раскопал при реализации плагинов. В части парсинга источника данных. Сейчас уже не найду.
...
Рейтинг: 0 / 0
01.08.2015, 11:41
    #39020929
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая загрузка отчета в апексе
mansion,

Без планов запросов тема ни о чем. Смотрите планы, например, через dbms_xplan.display_cursor и v$sql, либо сделайте трассировку (добавить в url &p_trace=YES), оттуда дергайте планы, сравнивайте, оптимизируйте.

+ пара советов:

- Не используйте функцию v в запросах
- Используйте явное преобразование to_date, все bind variables в апексе строчного типа.
- НЕ НАДО в pl/sql developer менять bind переменную на статическое значение, это 2 разных запроса, они не должны работать одинаково, в pl SQL developer-е тоже сеть bind переменные

Можно, конечно, плюнуть на планы и использовать вместо bind переменных подстановки ( '&ITEM_NAME.' ), но этот подход дурной, плохо для сервера, лучше разберитесь с планами
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Долгая загрузка отчета в апексе / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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