Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / ORDS vs Listener / 19 сообщений из 19, страница 1 из 1
07.12.2015, 11:53
    #39122111
Chitago
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
Привет,

сейчас есть такая конфигурация - немного устаревший APEX 4.2.5.00.08, листенер задеплоин на Weblogic (не ORDS). База - 12.1.0.2.
Планируется проапгрейдить до APEX 5 и начать использовать ORDS 3. Так как сейчас используется Weblogic от Enterprise Manager Cloud Control, что не есть правильно, то будет использоваться Tomcat.

Я поставил ORDS 3 на Tomcat 7, направил его на приложение и сразу же заметил ощутимое проседание по производительности. Начал смотреть с БД и трассировка отображения одной и той же страницы отличается во много раз.

Вот самый "вопиющий" пример:
Медленный (ORDS):

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
PARSING IN CURSOR #139768478791784 len=179 dep=0 uid=48 oct=47 lid=48 tim=2073610311195 hv=815204020 ad='f0af11e8' sqlid='fmpajs4s9f1pn'
begin
 wwv_flow.accept(p_flow_step_id=>:1 ,
p_md5_checksum=>:2 ,
p_page_checksum=>:3 ,
p_request=>:4 ,
p_page_submission_id=>:5 ,
p_flow_id=>:6 ,
p_instance=>:7 );
commit;
  end;
END OF STMT
BINDS #139768478791784:
 Bind#0
  oacdty=01 mxl=16386(16000) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7f1e62c326e8  bln=16386  avl=02  flg=05
  value="16"
 Bind#1
  oacdty=01 mxl=32(04) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=32 off=0
  kxsbbbfp=7f1e6319d5e8  bln=32  avl=00  flg=05
 Bind#2
  oacdty=01 mxl=16386(16000) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7f1e63286ff8  bln=16386  avl=32  flg=05
  value="AB381D0C32AE086D950A8598278B5BF1"
 Bind#3
  oacdty=01 mxl=16386(16000) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7f1e63282fb0  bln=16386  avl=19  flg=05
  value="T_DATABASE ANALYSIS"
 Bind#4
  oacdty=01 mxl=16386(16000) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7f1e6327ef68  bln=16386  avl=15  flg=05
  value="105642472077137"
 Bind#5
  oacdty=01 mxl=16386(16000) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7f1e62c56ff8  bln=16386  avl=03  flg=05
  value="105"
 Bind#6
  oacdty=01 mxl=16386(16000) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7f1e62c52fb0  bln=16386  avl=15  flg=05
  value="106113625478967"

EXEC #139768478791784:c=593910,e=1048166,p=28,cr=5179,cu=20,mis=0,r=1,dep=0,og=1,plh=0,tim=2073611359340



Быстрый (без ORDS):

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
PARSING IN CURSOR #140371593607792 len=179 dep=0 uid=48 oct=47 lid=48 tim=2073894200703 hv=815204020 ad='f0af11e8' sqlid='fmpajs4s9f1pn'
begin
 wwv_flow.accept(p_flow_step_id=>:1 ,
p_md5_checksum=>:2 ,
p_page_checksum=>:3 ,
p_request=>:4 ,
p_page_submission_id=>:5 ,
p_flow_id=>:6 ,
p_instance=>:7 );
commit;
  end;
END OF STMT
BINDS #140371593607792:
 Bind#0
  oacdty=01 mxl=16386(08) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7faacf31aff8  bln=16386  avl=02  flg=05
  value="16"
 Bind#1
  oacdty=01 mxl=32(04) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=32 off=0
  kxsbbbfp=7faacf370b78  bln=32  avl=00  flg=05
 Bind#2
  oacdty=01 mxl=16386(128) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7faaced91008  bln=16386  avl=32  flg=05
  value="3A1FE237D66B4EE18C1CC5FED7341674"
 Bind#3
  oacdty=01 mxl=16386(76) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7faaced81008  bln=16386  avl=19  flg=05
  value="T_DATABASE ANALYSIS"
 Bind#4
  oacdty=01 mxl=16386(60) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7faacf3baf90  bln=16386  avl=15  flg=05
  value="103847346443641"
 Bind#5
  oacdty=01 mxl=16386(12) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7faacf3b6f48  bln=16386  avl=03  flg=05
  value="105"
 Bind#6
  oacdty=01 mxl=16386(60) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=873 siz=16392 off=0
  kxsbbbfp=7faacec8aff8  bln=16386  avl=15  flg=05
  value="121119121385021"

EXEC #140371593607792:c=37994,e=42454,p=0,cr=152,cu=14,mis=0,r=1,dep=0,og=1,plh=0,tim=2073894243141



Т.е. время выполнения бысрого - 42454, а медленного 1048166. И такое поведение наблюдается постоянно - ORDS медленно, без него быстро.

Что это может такое быть?
...
Рейтинг: 0 / 0
07.12.2015, 12:12
    #39122146
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
ChitagoТ.е. время выполнения бысрого - 42454, а медленного 1048166
это в попугаях? Оптимизация ради оптимизации не делается. Вы заменили сразу 2 уровня и хотите одинаковости в цифрах.
...
Рейтинг: 0 / 0
07.12.2015, 12:25
    #39122171
Chitago
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
Petro123ChitagoТ.е. время выполнения бысрого - 42454, а медленного 1048166
это в попугаях? Оптимизация ради оптимизации не делается. Вы заменили сразу 2 уровня и хотите одинаковости в цифрах.
Вы не выспались? Я же вроде показал, что это файл трассировки. Там всё в микросекундах (1/1'000'000), начиная с девятой версии, насколько я помню.
Разница в выполнении только этой процедуры 26 раз. Это заметная разница при отображении страниц. Очень заметная. А есть ещё и другие процедуры.
Все страницы отображаются 2-3 секунды. Без ORDS - отображение моментальное. Два уровня - это сервер приложений (Tomcat) и ORDS? Я бы всё-таки Tomcat пока не трогал.
И таки да, я хочу одинаковости в цифрах. А с чего бы вдруг нет?
...
Рейтинг: 0 / 0
07.12.2015, 12:36
    #39122188
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
ChitagoВы не выспались?

===== я чётко разделяю вопросы админа и вопросы разработчика. А также вопросы сферических коней или абстрактных тестов по тактам процессора.

Разница в выполнении только этой процедуры 26 раз. Это заметная разница при отображении страниц. Очень заметная.

==== с этого бы и начинали = скрин загрузки в JS отладчике. (профилировка)

Все страницы отображаются 2-3 секунды.

==== другое дело

Два уровня - это сервер приложений (Tomcat) и ORDS? Я бы всё-таки Tomcat пока не трогал.
И таки да, я хочу одинаковости в цифрах. А с чего бы вдруг нет?

=== проще делить пополам. Меняйте по одному и тесты сюда. Там ещё и пул есть.
...
Рейтинг: 0 / 0
07.12.2015, 12:38
    #39122195
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
я менял сразу с EPG на ORDS - разница заметна.
...
Рейтинг: 0 / 0
07.12.2015, 12:51
    #39122217
Chitago
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
Спасибо за желание помочь, конечно. Но я не совсем понял зачем мне надо "профилировать" что-то там в JS отладчике, если я уже знаю, что у меня в БД PL/SQL процедура работает медленно.
...
Рейтинг: 0 / 0
07.12.2015, 13:05
    #39122246
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
Chitago,

Может разница, потому что сервера разные ?

Включите apex debug на обоих страницах и посмотрите, в каком месте и что именно тормозит.
...
Рейтинг: 0 / 0
07.12.2015, 13:12
    #39122256
Chitago
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
SvDev,

Это одна и та же страница. Просто доступ к ней из разных мест - через листенер на Weblogic и через ORDS на Tomcat.
Тормозит БД - самый тормоз я уже показал, есть ещё несколько. Т.е. по какой-то причине вызовы PL/SQL (или может быть рекурсивные вызовы из процедур) из ORDS выполняются в разы медленнее.
В трассировке видно, что с переменными привязки что-то не так. Когда из ORDS, то для mxl в скобочках 16000. Может как-то влияет. Я просто уже не знаю до чего докопаться.
...
Рейтинг: 0 / 0
07.12.2015, 13:15
    #39122262
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
ChitagoЯ просто уже не знаю до чего докопаться.
уже говорил - меняйте по частям, а не сразу 2 уровня. Там куча настроек.
...
Рейтинг: 0 / 0
07.12.2015, 13:16
    #39122266
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
ChitagoСпасибо за желание помочь, конечно. Но я не совсем понял зачем мне надо "профилировать" что-то там в JS отладчике, если я уже знаю, что у меня в БД PL/SQL процедура работает медленно.
для очистки совести. APEX больше клиентская технология.
...
Рейтинг: 0 / 0
07.12.2015, 13:25
    #39122283
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
Chitago,

Я понял, что страница одна,

wwv_flow.accept - это слишком большой кусок кода, который выполняет ВСЁ, внутри может быть что угодно,

в apex debug можно посмотреть в каком конкретно месте тормозит (если в трассировке ниже не видно)
...
Рейтинг: 0 / 0
07.12.2015, 13:35
    #39122304
Chitago
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
SvDev,

Я просто отреагировал на "на обеих страницах", поэтому уточнил.
Сейчас как-раз в трассировке разбираюсь. Там, конечно, идёт рекурсия, поэтому подключил OraSRP - там дерево неплохо строится.
Но давай попробую с debug на странице.
...
Рейтинг: 0 / 0
07.12.2015, 13:42
    #39122311
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
Мне кажется дебаг страницы ничего не даст, ведь она одна и та же, и логично предположить что БД отрабатывает с точно такой же скоростью. А вот отдача клиенту по какой то причине тормозит. Как мне кажется нужно копать именно Томкэт, java...
...
Рейтинг: 0 / 0
07.12.2015, 13:46
    #39122317
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
Chitago,

Потому что вопрос был: оба примера на одной и той же (виртуальной) машине или вы развернули копию где-то ?

я бы посмотрел еще на загруженность веб сервера и ОС в тот и другой момент, у вас даже затраты cpu разные
...
Рейтинг: 0 / 0
07.12.2015, 13:48
    #39122320
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
Например, с ords код возвращает exception и отрабатывает быстро, или sql отрабатывает с разными планами, тогда разбираться, почему разные планы.
...
Рейтинг: 0 / 0
07.12.2015, 14:00
    #39122337
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
blkangel,

страница может быть и одна, но сдается мне, что apex debug может оказаться разным, с разными результатами выполнения,
+если тормозит запрос, будет видно какой, в трассировке обычно так просто не разберешься, если не знаешь, что искать
...
Рейтинг: 0 / 0
07.12.2015, 15:08
    #39122429
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
SvDevblkangel,

страница может быть и одна, но сдается мне, что apex debug может оказаться разным, с разными результатами выполнения,
+если тормозит запрос, будет видно какой, в трассировке обычно так просто не разберешься, если не знаешь, что искать

С чего он разный то будет, если исходные данные одинаковые, и я так понимаю БД одна и та же. Именно листенеры меняются
...
Рейтинг: 0 / 0
07.12.2015, 15:28
    #39122447
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
blkangel,

потому что в первом топике показано разное время выполнения, апекс в одном pl/sql блоке выполняет всю обработку, результат помещает в переменные пакетов, потом в другом блоке выполняет всё считывание,

выше код, где только одна обработка на сервере
...
Рейтинг: 0 / 0
07.12.2015, 16:08
    #39122490
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDS vs Listener
Вообще, количество логический и физических чтений в первом случае явно больше, поэтому логично предположить, что обработка шла в разных условиях, что-то отличалось. Например, в первом случае работа шла с большим подразделением (или какой-то другой группировкой данных), и какой-то запрос посередине, например, затормозил, во втором случае работа шла с маленьким подразделением, где мало данных, и все выполнилось быстро... Или это могли быть какие-то другие отличия в среде, которые повлияли на выполнение, например, параметры инициализации, тут надо всё смотреть...
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / ORDS vs Listener / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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