|
Поиск причины периодических "тормозов"
|
|||
---|---|---|---|
#18+
Добрый день. Есть страница со списком позиций, в каждой - ссылка на открытие модального окна (окно на bootstrap-modal). При открытии окна загружаются данные позиции. Выполняется следующий код (все названия переменных изменены): Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Процесс GET_ORDER_INFO: DECLARE v_info1 VARCHAR2(300); v_info2 NUMBER; Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Проблема в том, что при обращении к приложению по сети примерно в 2 случаях из 3 wwv_flow.show отрабатывает аж 4-5 секунд, что для системы является практически неприемлемым :(. Если вызывать данные по одной и той же позиции подряд - второй раз вроде бы всегда быстро (менее секунды). Если запустить браузер на самом сервере, работает всегда быстро (0,3 - 0,5 секунды). Убирая вызов картинки, ничего не добились. SELECT проверили со всех сторон - дольше, чем 0,8 секунды не выполнялся, да и план там весьма простой. Если в процессе вместо селекта сделать статическое htp.p('Бла-бла');, то работает всегда быстро. Возникло параноидальное впечатление, что на каком-то этапе сетевого обмена время уходит на анализ трафика (ведь повторно одно и то же быстро всегда!). Или у APEX процессов есть некий кэш? В логах листенера ошибок нет. Может, можно сделать некую трассировку? Подскажите, куда копать. Windows 2003 Oracle 10.2.0.5 APEX Listener 2.0 EA Application Express 4.2.0.00.27 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 21:40 |
|
Поиск причины периодических "тормозов"
|
|||
---|---|---|---|
#18+
Скороход, APEX_DEBUG_MESSAGE.LOG_MESSAGE до и после, проверяется, являются ли тормоза внутри процесса или где-то еще. Если тормозит внутри, хотите помощи, привидите реальный селект (например, планы могут различаться внутри апекса и снаружи по различным причинам). Либо еще может тормозить яваскрипт в браузере, тоже легко проверяется в сетевом мониторе. Если нет, делайте трассировку сессии. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 09:47 |
|
Поиск причины периодических "тормозов"
|
|||
---|---|---|---|
#18+
Скороход, Вообще по привиденным огрызкам селекта даже помогать не хочется. Например, могут присутствовать замены substitution, типа &SESSION., они подставляются в запрос статически, каждый раз будет строиться новый план, был случай, когда запрос выполняющийся за 0.1 секунды тормозил на 1.5 секунды из-за этого. Ну и есть другие причины, почему ваша проверка select-а снаружи могла ничего не показать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 10:15 |
|
Поиск причины периодических "тормозов"
|
|||
---|---|---|---|
#18+
Спасибо. Один вопрос - как дебажить приложение с кастомной аутентификацией? Если я запускаю его из среды, залогинившись под девелопером, то после логина в приложении сессия в среде, видимо, "убивается". В итоге панели с кнопкой debug не видно. Если бы тормозил запрос, то и в браузере на сервере хоть иногда, но тормозило бы, или я неправильно представляю? В любом случае, запрос примитивен: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Все, в этом запросе больше нет ничего. 2 таблицы, одно представление с примитивной арифметикой, условие по wwv_flow.g_x01, 2 округляющихся поля Number, одно varchar2 и функция get_lists, принимающая в качестве аргумента поле Number первой таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 19:25 |
|
Поиск причины периодических "тормозов"
|
|||
---|---|---|---|
#18+
Скороход Код: plsql 1.
Оракл такое кушает разве? при проверке запроса установите одинаковые nls session parameters, что и в апексе + явное преобразование типов везде + трассировка сессии Скороходто после логина в приложении сессия в среде, видимо, "убивается" Опция должна быть включена в app definition, этого достаточно. Или может быть с кукисами в настройках еще что-нибудь перенаворотили? СкороходЕсли бы тормозил запрос, то и в браузере на сервере хоть иногда, но тормозило бы, или я неправильно представляю? Мало ли, может там аякс не работает или кешируется как раз, или представления какие-нибудь системные используются, в которых эти данные как раз зависимы и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 20:09 |
|
Поиск причины периодических "тормозов"
|
|||
---|---|---|---|
#18+
Сделали приведение типов везде. Победили невключавшийся дебаг. Запрос выполняется очень стабильно, примерно 0,26 секунды. Картина на стороне клиента при этом может быть такой, как на картинке... а может и не быть. Озадачили сетевиков. Возможно как-то оттрассировать работу apex_listener? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 15:16 |
|
Поиск причины периодических "тормозов"
|
|||
---|---|---|---|
#18+
СкороходВозможно как-то оттрассировать работу apex_listener? http://<host>:<port>/apex/listenerAdmin : - Pre-Post Processing — можно вписать процедуры, которые будут выполняться до и после каждого обращения к БД; - Status — информация о работе. В Logging в порядке устаревания идут записи о времени обработки каждого запроса (БД, прослушиватель). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2013, 03:14 |
|
|
start [/forum/topic.php?fid=50&fpage=54&tid=1875878]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 323ms |
total: | 455ms |
0 / 0 |