Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle APEX Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
VDom,
про бизнес логику и зачем хранимка вы тоже не ответили.
Поэтому удачи!
8 июн 17, 20:23    [20551392]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
VDom
Member

Откуда:
Сообщений: 51
Petro123

C логикой у нас всё нормально.
Тестовых серверов у нас 4. На одном из них заказчик учится.
Загрузка его не соизмерима с промом - там миллионы коннектов в сутки.
На остальных нагрузки нет вовсе.
До последнего времени мы мониторили скорость срабатывания тестового скрипта только на проме.
В качестве критерия мы используем время работы тестового скрипта.
Так вот оно ни на одном тестовом сервере не растёт.
Для адекватной ситуации надо на одном из тестов создать соизмеримую с промом нагрузку, а это не реально.
Нам просто некуда записать такую нагрузку даже за сутки, требуется хотя бы несколько дней.

По поводу приложения.
У нас штук 40 приложений на Апексе, и даже затрудняюсь сказать сколько разных других программ.
Несколько Апексных приложений специально разработаны для работы с документами, в том числе и сканами документов.
Чтобы как то разрулить ситуацию с LOBами (а первой возникла проблема с местом и временем логического экспорта), был разработан так называемый файловый архив в который выгрузили большую часть имеджей.
За счёт этого сильно сократился размер БД и сейчас он занимает всего 10ТБ.
Однако выявилась другая проблема которая была и раньше, но которая не диагностировалась, связанная с лобами - снижение скорости работы с LOB в течении 2-3 недель. Эта проблема выявилась при использовании программы загрузки/выгрузки документов в LOB. Скорость её работы падала в сотни раз. Разбор этой ситуации и выявил проблему которой посвящено данное обсуждение.
Кроме того у нас периодически возникает ситуация, когда приложения разработанные на Апекс устанавливается очень долго.
В нормальной ситуации это пара минут, а потом время установки возрастает до часов. Причины этого нам были не понятны.
После выявления проблемы деградации производительности с LOB стало понятно что это одна и та же проблема.
Дело в том что движок Апекса очень интенсивно работает с LOB. Например все загрузки/выгрузки файлов выполняются через таблицу www_flow_data с LOB полем. Это относится и к загрузке Апексных приложений.
Поэтому это обсуждение есть и в Апексной ветке и в основной ветке Oracle.
9 июн 17, 11:56    [20552586]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
VDom
Для адекватной ситуации надо на одном из тестов создать соизмеримую с промом нагрузку, а это не реально.

У меня впечатление, что вы всех убеждаете о невозможности создать нагрузочный тест.
Каждый раз у вас новый аргумент.
Вот, на второй странице новый:
VDom
Нам просто некуда записать такую нагрузку даже за сутки, требуется хотя бы несколько дней.

- нагрузку не записывают. Нагрузку создают.
- результаты нагрузки в виде БЛОБ закачанных сканов можно удалять тем же JOB'ом.
.......
Далее вы в 10 раз мешаете все проблемы в кучу так, что читать сложно.
Ещё раз:
1. Тестовая площадка для нагрузочного тестирования по ГОСТ
2. Архитектура ИС как рекомендует Оракл для версии 4 и 5.
9 июн 17, 12:20    [20552712]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
VDom
Member

Откуда:
Сообщений: 51
Petro123
Я сразу перебрасываю сканы в свою таблу.
Никаких ваших ТАКИХ хранимок нету.
Что я делаю не так?


Если кто не в курсе, работа с файлами в Апекс (я имею ввиду нормальный не эмбедед Апекс 3) в общих чертах выглядит так :
В интерфейсе создаётся элемент File brauser из которого файл попадает в apex_application_files, из которого потом можно переместить его туда куда нужно. Это стандартная процедура есть примеры и т.д.
На самом деле apex_application_files это вьюшка на wwv_flow_file_objects$.
В конце манипуляции с файлом надо только не забывать чистить apex_application_files
delete from apex_application_files where name = p_upload_name;

Иначе со временем вы можете "внезапно" выяснить что табличка wwv_flow_file_objects$ сильно выросла и съела всё свободное место в ТП.

Подчёркиваю вся вся работа с файлами (и исходниками собственно приложений Апекса) проходит через wwv_flow_file_objects$.
Сделайте например импорт Апекс приложения, потом посмотрите, что оно появилось в репозитрории Апекс.
Затем посмотрите wwv_flow_file_objects$ и вы увидите что ваше приложение в ней - это и есть репозиторий.
Короче все файлы в Апексе проходят через неё. Возможно в других версиях Апекс что то изменилось, но это вряд ли.
Кто сомневается - проверьте её размер, после инсталляции Апекса и например, через год работы системы.
Заодно посмотрите что в ней, и узнаете много интересного.
И это не единственная таблица Апекса с LOB. Весь движок Апекса очень бурно работает с LOB полями.
Если вы пока не этого не заметили, значит у вас не сильно активно пользуются приложением.

Именно поэтому мы связываем деградацию производительности при работе с LOB и АПЕКС.
То есть проблема возникает только на интенсивно работающих с Апекс приложениями системах.
Я не говорю что виноват Апекс, проблема в БД но проблема проявляется под влиянием Апекса.
Но что же на самом деле происходит непонятно.
9 июн 17, 12:49    [20552871]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
VDom
Если кто не в курсе

я в курсе
VDom
Иначе со временем вы можете "внезапно" выяснить

есть запрос, который показывает это конкретно. И нет никакой "внезапно".
Дальше опять бла бла бла.
Вы не знали что есть запрос на чистку при загрузке БЛОБ?
9 июн 17, 12:57    [20552908]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
повторяю вопрос. Что я делаю не так?
--перекидываем в свою таблицу все поступающие БЛОБ
Insert into MY_FILES (ID, AP_UNAME, F_DATA, F_MIMETYPE, F_CHARSET, F_FILENAME)
    select ************      from WWV_FLOW_FILES      where NAME=pNAME;
удаляем их со служебной таблицы
--Delete from WWV_FLOW_FILES   where NAME=pNAME;
9 июн 17, 13:07    [20552966]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
VDom
Именно поэтому мы связываем деградацию производительности при работе с LOB и АПЕКС.

Начиная с 5.0 апекс ушел от этого хранилища, вместо apex_application_files используется apex_application_temp_files, который чистится сам (хотя кое какие проблемки там еще остались, если выбирать сразу конечную таблицу в качестве хранилиша), более того использование старого хранилища desupported в 5.1.

Начиная с apex 4.2 (фактичиски с 4.1.1, если патчем) в связке с ords, если вам не нравится как в этом плане устроен mod_plsql, можно использовать restful сервисы для загрузки файлов (пример есть в документации) без промежуточных таблиц.

Но опять же, каких либо данных, что именно с этим связаны ваши проблемы не представлено.
9 июн 17, 13:25    [20553071]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
Petro123
повторяю вопрос. Что я делаю не так?

Немного не по теме.
В версиях до 5.0 этого недостаточно, этот код оставляет мусор после себя.
Проблема не сколько в апекс, а во многом на уровне параметров PlsqlDocumentTablename mod_plsql и apex.docTable в ords и том, как они работают. Файл грузится в служебную таблицу, код очистки выполняется гораздо позже.
Если посередине есть валидация или сработает какая-нибудь другая ошибка файл остаётся в базе.

В случае с ords напрашивается интеграция с restful, чтобы файлы грузились сразу в конечную таблицу и декларативно через какой-нибудь системный rest сервис, но пока декларативного нет.

VDom
Кроме того не забываем что у Апекса вся работа с файлами - загрузка/выгрузка, и собственно залмвка приложений всё идёт через таблицу WWV_FLOW_DATA с ITEM_VALUE CLOB.

Мне неизвестно, чтобы WWV_FLOW_DATA был как-то связан с файлами.
Могу ошибаться, но насколько мне известно:
- В старых версиях все items хранились как clob, чтобы обойти ограничения в 4000.
- В новых версиях хранится в 2-х столбцах varchar2 и clob, в clob помещается если между 4000 и 32767.
- Если включена опция 12c с 32767 в varchar2 в таблицах - вполне вероятно как clob вообще не хранится, не проверял.
- Если бы у вас с этой таблицей была бы проблема, врят ли вы бы жаловались на заливку приложений, все приложения повисли бы напрочь.
- Очень вероятно, что 11g или 12c решают проблему в топике.
10 июн 17, 13:16    [20555181]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
+ могу ошибаться, но, мне кажется, в старых версиях мастера делали Item Source: Only when current value in session state is null где-то по умолчанию при создании форм (может быть я что-то путаю).

Сейчас при создании форм используется Item Source: Always, replacing any existing value in session state, если источник database column и если приложение не в старом compability mode, поменять эту опцию на предыдущую уже нельзя.

Среди прочих отличий этих опций: одна из них используется совместно с persisted session state, другая c in-memory session state (и не хранится в таблице). Врят ли эти изменения связаны непосредственно с производительностью, но на производительность, вероятно, тоже какое-то влияние оказывают.
10 июн 17, 13:42    [20555233]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
SvDev,
очень много допущений и гаданий на кофейной гуще.
Я выше писал, что на данной ветке уже разбирали этот мусор и приводился запрос который показывает этот мусор.
Я запрос у себя запускал на продакшене и никакого мусора нету.
Могу поискать тот запрос.
А то как в анекдоте: "видишь суслика?".
...
Про транзакцию при скачке, разумеется у меня есть try в коде чтобы процесс не прервался и завершился.
Нет проблем.
Проблемы у ТС т.к. он решает по админски, а надо решать по программистски (заменяя кусками).
10 июн 17, 14:56    [20555399]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
Petro123,

Это потому что ты валидацию не делаешь и ограничение на размер заливаемого файла (очень частое требование)
10 июн 17, 15:11    [20555425]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
SvDev
Petro123,
Это потому что ты валидацию не делаешь и ограничение на размер заливаемого файла (очень частое требование)

Это типа предложение что можно сделать в хранимке?
Пусть автор конкретнее скажет use-case или Варианты Использования(ВИ). Что именно он валидирует при функционале: "Закачать файл на сервере".
Тогда можно подумать о решениях.
Их много всяких. Причём на том же JS вообще ПЕРЕД закачкой.
Или сделать тест на двое суток, где отменять закачку по валидации на 100000 блобов.
Но не так что тему мусолить 3 страницы и ничего не делать.
...
У меня система в продакшене успешно 3 года.
Он тут один с таким вопросом тоже 3 года.
Сразу напрашивается вывод, что дело не в апексе, а топик стартере.
11 июн 17, 12:17    [20556413]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
кстати, запрос с показом мусора при работе с download\upload никто не привёл.
А он тут был в каком то топике про "тормоза".
11 июн 17, 12:22    [20556421]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
Petro123,

Вопроса про мусор не было . Тебе надо - создай тему, лень объяснять.

Petro123
Он тут один с таким вопросом тоже 3 года.
Сразу напрашивается вывод,

Зато подобных шаблонных ответов по всему разделу большая куча...
11 июн 17, 12:36    [20556445]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
SvDev
Вопроса про мусор не было . Тебе надо - создай тему, лень объяснять.

твоё:
автор
В версиях до 5.0 этого недостаточно, этот код оставляет мусор после себя.

SvDev
Зато подобных шаблонных ответов по всему разделу большая куча...

это не удивительно. Конструктор апекс с низким порогом вхождения (мало кода и много вопросов).
Удачи автору!
11 июн 17, 13:23    [20556502]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
SvDev,
вообще, сегодня наверно ты не с той ноги встал. На протяжении топика ты говорил что данных мало чтобы судить о связи апекса с проблемой ТС.
Появились какие то новые данные?
Пусть ТС идёт делать тесты. А то флуда много пошло.
11 июн 17, 13:30    [20556512]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
Petro123,

Вопрос с файлами просто элементарно проверяется, делается любая валидация, которая срабатывает при загрузке, в разделе validations и загружается любой файл. Дальше в wwv_flow_files по имени файла найти можно. Обойти можно конечно, но лучше не в этой теме.

Про тесты согласен. Про то, что каких-то вопросов не было не аргумент. Многие вопросы, например, обсуждаются на otn форуме и здесь не освещены.
11 июн 17, 13:47    [20556535]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
SvDev
Вопрос с файлами просто элементарно проверяется

да. Согласен. Пусть ТС тестит. Я тоже ленивый)). Шутка.
SvDev
Про то, что каких-то вопросов не было не аргумент. Многие вопросы, например, обсуждаются на otn форуме и здесь не освещены.

А такой аргумент?
В катастрофах и НЕработоспособности, есть правило от инженеров: "самая простая причина обычно самая правильная".
Звучит как то так, но пословица говорит, что бОлее вероятно что у ТС - простейшая причина.
Как то: Версия апекс тройка или лишние хранимки по архитектуре.
Это не я говорю. Это инженеры)).
11 июн 17, 14:03    [20556558]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
Petro123,

Хранимки чаще всего не лишние, вместо них можно воткнуть слова: oracle database - 10-ка, а так очень даже)
11 июн 17, 14:19    [20556578]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
SvDev,
Я работы на тройке видел кусками. Сам с 4-ки начал.
Те куски что видел говорили о том, что там были в порядке вещей велосипеды с ручным перебросом айтемсов на сервер. Или частое http.print(
Я же за декларативную разработку начиная с 4-ки).
Но гадать конечно не будем.
Про 10 ку разумеется. При смене версии платформы автоматом и база сменится.
Выше писал, что установка базы 2,5 часа. Противопаказаний нет. Только желание.
imho
Удачи!
11 июн 17, 14:26    [20556583]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
Petro123,

И стоимость)
11 июн 17, 14:28    [20556584]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
SvDev,
XE бесплатная
11 июн 17, 16:52    [20556733]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
Petro123,

Если 10 Тб базу с 48 ядрами переведёшь на XE, я думаю, Нобелевскую получишь)
11 июн 17, 17:19    [20556759]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29688
SvDev,
Дык мы о тестовой площадке всё. О ней родимой.
Для нее только желание.
11 июн 17, 17:37    [20556774]     Ответить | Цитировать Сообщить модератору
 Re: Замедление заливки приложений APEX  [new]
SvDev
Member

Откуда: Челябинск
Сообщений: 1943
Petro123,

Для нормальной тестовой площадки XE не хватит, для этого скорее всего можно бесплатно EE использовать, если хватит Oracle Technology Network License Agreement для данного случая, вроде должно хватить. Но тут надо сначала воспроизвести проблему, иначе смена версии БД или чего-то еще на тесте ничего не покажет.
11 июн 17, 18:14    [20556806]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Oracle APEX Ответить