|
|
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
Добрый день. Писал большой отчет на заказ в pl\sql девелопере. Отрабатывает ~до 3 секунд максимум и использует 1 параметр в 4 местах. Но при выводе данного отчета с параметром в апексе через простой classic report и айтемом date_picker отчет грузит 15-20 сек. Прописывал дату жестко в репорте, работал быстро как в девелопере, подставил параметр, опять грузит долго. Как решить проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2015, 13:47 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
mansion, такая тема была - поищи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2015, 14:17 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
mansionДобрый день. Писал большой отчет на заказ в pl\sql девелопере. Отрабатывает ~до 3 секунд максимум и использует 1 параметр в 4 местах. Но при выводе данного отчета с параметром в апексе через простой classic report и айтемом date_picker отчет грузит 15-20 сек. Прописывал дату жестко в репорте, работал быстро как в девелопере, подставил параметр, опять грузит долго. Как решить проблему? Количество выводимых строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2015, 15:58 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
blkangel, примерно 1.5к. Стояли все выводимые сразу, поменял на 30 на страницу, грузиться стало быстро. Но в девелопере те же 1.5к грузятся за пару секунд. Значит апекс тратит время на построение таблицы? или как? мне необходимо видеть все строки сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 08:38 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
mansionдевелопере он там не все грузит, а видимые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 08:58 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
mansionblkangel, примерно 1.5к. Стояли все выводимые сразу, поменял на 30 на страницу, грузиться стало быстро. Но в девелопере те же 1.5к грузятся за пару секунд. Значит апекс тратит время на построение таблицы? или как? мне необходимо видеть все строки сразу. Тут может быть просто браузер долго строит. В линуксе(аналогию в винде не знаю) можно было бы сделать wget ваш урл.(предварительно страницу сделав public,чтоб без авторизации ,иначе не пропустит) И посмотреть как долго он отрабатывает. И если быстро значит апекс отклик делает быстро...а косячит прорисовка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 09:04 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
Petro123, Я не такой глупый как вы могли подумать, вот скрин времени загрузки всех строк в pl\sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 09:55 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
mansionPetro123, и в апексе при прописывании даты в сам sql код репорта, работает так же ~2сек. А при подставлении вместо даты айтема проблема с долгой загрузкой снова появляется. Айтем и сам репорт абсолютно простые, без наворотов и плагинов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 09:58 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
mansionmansionPetro123, и в апексе при прописывании даты в сам sql код репорта, работает так же ~2сек. А при подставлении вместо даты айтема проблема с долгой загрузкой снова появляется. Айтем и сам репорт абсолютно простые, без наворотов и плагинов Тут два момента. 1. Это браузер долго строит, поэтом ограничение строк явно сказывается. 2. Собственно про сами даты. Есть два способа подстановки биндов в запрос. Стандартный :PXX_ITEM, и при помощи использовании функции v('PXX_ITEM'). a) Что происходит при первом методе (:PXX_ITEM), апекс берет запрос, выделяет все бинды в данном запросе и выполняет запрос вида для каждого из них Код: plsql 1. А потом тупо делает замену такого бинда в запросе. б) При использовании второго метода, функция ни чем не подменяется, а тупо выполняется на лету вместе с запросом. В зависимости от ситуации, либо первый либо второй случай лучше подходит, например если бинд в условии, а запрос возвращает много строк, то второй метод лучше не брать. Мне кажется в твой ситуации выход напрашивается такой, используй функцию который возвращает запрос, уже с жестко задонной датой. 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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 10:42 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
А еще можно посмотреть планы и закрепить хинтами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 10:44 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
blkangel, Где можно почитать про подмену бинденных переменных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 12:35 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
mansionmansionPetro123, и в апексе при прописывании даты в сам sql код репорта, работает так же ~2сек. А при подставлении вместо даты айтема проблема с долгой загрузкой снова появляется. Айтем и сам репорт абсолютно простые, без наворотов и плагинов я же тебе писал - поищи такую тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 13:30 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
mansionи в апексе при прописывании даты в сам sql код репорта, работает так же ~2сек. А при подставлении вместо даты айтема проблема с долгой загрузкой снова появляется. Айтем и сам репорт абсолютно простые, без наворотов и плагинов у меня 1000 записей из APEX_040200.WWV_FLOW_ACTIVITY_LOG грузится 1сек. Приведи свои тормоза на данном примере. Чтобы я смог проверить. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 13:48 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
irbis_alТут может быть просто браузер долго строит. Chrome Developer Tools, Firefox Developer Tools даст тебе раскладку по этапам обработки запроса (DNS, Обработака сервером, постоение DOM) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 15:35 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
Gustlyblkangel, Где можно почитать про подмену бинденных переменных? Это я раскопал при реализации плагинов. В части парсинга источника данных. Сейчас уже не найду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2015, 16:44 |
|
||
|
Долгая загрузка отчета в апексе
|
|||
|---|---|---|---|
|
#18+
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.' ), но этот подход дурной, плохо для сервера, лучше разберитесь с планами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2015, 11:41 |
|
||
|
|

start [/forum/topic.php?fid=50&fpage=29&tid=1874883]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 286ms |

| 0 / 0 |
