|
|
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Добрый день, Коллеги Вопрос новичка. Видел обсуждение проблем подобных моей в.т.ч на этом форуме, но решения для себя пока не нашел. Если что-то посмотреть ,пожалуйста не кидайте тапками )) Требуется создать IR, фильтрация ряда заголовков которого осуществляется выбором значений из LOV . Последний делает выборку из табицы с сотрудниками (10k-20k записей) и отпрабатыввает достаточно долго (~30 сек). Сам запрос Код: plsql 1. 2. 3. Колонки в условии запроса проиндексированы. Притом cost sql-запроса LOV 280 и БД отрабатывать его должна быстро, учитывая , что бд крутится на достаточно производительном железном сервере. скрин debug-а приложен Проблема актуальна для Apex5.0.1+ORDS+Tomcat7+RHEL , для Apex4.2+PL/SQL Gateway+OEL Замечено, что включение на томкате компрессии трафика уменьшает время отработки тяжелых LOV на 20-30%. Увеличение или уменьшение объема возвращаемых данных (меньше кол-во строк, возвращать логин, а не фио), пропорционально уменьшают время отрабатывания Может быть вы знаете варианты, как заставить LOV выводить список сотрудников за приемлемое время (не более нескольких секунд)? Или чтоб он начинал искать после пары введенных букв? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2015, 12:29 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Arrisio, Сразу бросается в глаза кривой ЛОВ, зачем выводить на экран и возвращать одно и тоже? Код: plsql 1. 2. 3. Это может только означать, что в основном запросе у вас уже выводится ФИО, тогда зачем использовать ЛОВ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2015, 13:53 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Это может только означать, что в основном запросе у вас уже выводится ФИО, тогда зачем использовать ЛОВ? Совершенно верно. В таблице, по которой строится отчет, более миллиона записей. Понятно, что колличество выводимых строк должно усекаться. Если искать по значениям в столбце, то это а) может быть долго б) установлено ограничение на кол-во выводимых в отчет строк. Если не вешать на столбец отчета лов, то , судя по дебаг-логам, в условие запроса дописывается Код: sql 1. , а это значит, что я скорее всего не увижу всех значений авторСразу бросается в глаза кривой ЛОВ, зачем выводить на экран и возвращать одно и тоже? Буду признателен , если подскажете , как сделать его правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2015, 14:25 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Arrisio, Может стоит сделать деструктив, и вынести фильтр по сотрудникам как отдельный элемент. Я еще больше склоняюсь к тому, что все таки IR не подходит под большие объемы. Кстати по поводу индексов, Я тут разбирался и индекс не работает если ты ищешь по null, если только индекс не составной. А при использовании составного индекса нужно в запросе соблюдать порядок. (тут я не профи, могу ошибаться) Смотрите не cost запроса, а использование индексов, берет ли он их, или fullscan ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2015, 15:05 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Обычные b-tree индексы нуллы не содержат. Одно из решений - использовать функциональный индекс по nvl(column) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2015, 15:45 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
ArrisioМожет быть вы знаете варианты, как заставить LOV выводить список сотрудников за приемлемое время (не более нескольких секунд)? Или чтоб он начинал искать после пары введенных букв? я не понял, как и где он у тебя исп-тся. дай скрин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2015, 17:20 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
blkangel, Благодарю за советы С производительностью самих sql-запросов сложностей нет. FULL_NAME is not null - это даже излишнее, безумянных людей ведь нет ) Кроме того, быстро работает отовсюду (при запросах из локально запущенного Toad, при перекачке данных с помощью Pentaho) авторМожет стоит сделать деструктив, и вынести фильтр по сотрудникам как отдельный элемент. Возможно, к этому и придет. Просто тормоза из-за объема данных проявляются и в др. местах (напр. выгрузка в xls используя плагин Interactive Report to MSExcel ). Надеялся, что есть возможность поправить все разом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2015, 19:11 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Petro123, авторкак и где он у тебя исп-тся. дай скрин. Сорри, не понял скрин чего надо сделать? "исп-тся" - имеется в виду испортился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2015, 19:18 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Arrisio, исп-тся = используется. Скрин нужен ГУИ. Может есть вариант другого интерфейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2015, 04:53 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Arrisio, по законам юзабилити "миллионный отчет" не имеет смысла. Глазами его не охватить, а данные для машинной обработки не называются отчетом. Поэтому рекомендую вывести список сотрудников с важными агрегирующими значениями в одну таблицу, а подробности вызывать по клику на сотруднике или на ячейке агрегата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2015, 10:39 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Курдль, Благодарю за рекомндацию, но пытаюсь сделать немного другое. Есть таблица с заявками (инциденты, Trouble tickets , обращения - кому как удобнее). Соотв. у заявок есть атрибуты "инициатор", "исполнитель" и.т.д. Очень часто хотят делать выгрузки заявок, например, по исполнителю за год. Или по любому другому набору условий, возвращающим относительно небольшое кол-во записей. Т.е. пытаюсь сделать не систему отчетов расчетом KPI , агрегатов и проч. , а простой , но удобный для простого пользователя интерфейс для работы с сырыми данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2015, 13:28 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Petro123, На столбце инициатор висит лов , выполняющий Код: plsql 1. 2. 3. 4. 5. 6. Несмотря на то, что кост этого запроса на порядок больше, чем у приведенного в 1м сообщении, в гуи он работает быстрее за счет того, что возвращается 10к, а не 20к строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2015, 13:54 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
ArrisioКурдль, ...Т.е. пытаюсь сделать не систему отчетов расчетом KPI , агрегатов и проч. , а простой , но удобный для простого пользователя интерфейс для работы с сырыми данными. Excel? :) Не обязательно делать агрегаты, KPI и т.д. Я имел в виду интерфейс "Drill Down". Еще существуют визарды, помогающие пользователю ограничить выборку. Слушай, я вот не верю, что кто-то мог спроектировать такую модель данных, где данные о сотрудниках содержатся только в миллионной таблице с инцидентам. А как же 3-НФ? :) Мы множество постов обсуждаем подход к выборке данных, а на модель никто даже не удосужился взглянуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2015, 14:13 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Курдль, авторExcel? :) Кстати , иногда просят выгрузить табличку с сотней тысяч строк, а юзеры уже сами играют :(. От этого и хочу уйти авторгде данные о сотрудниках содержатся только в миллионной таблице с инцидентам. Смотри , в приведенном примере есть 2 таблицы HD_Tasks (заявки, млн строк), S_People (сотрудники 20к строк) Создаю IR который делает выборку из HD_Tasks Создаю LOV который смотрит на S_People и прикрепляю его к колонкам IR , в которых фигурируют сотрудники. Проблема в том, что сотрудников заведено много и штатный LOV достаточно медленно работает с их списком авторМы множество постов обсуждаем подход к выборке данных, а на модель никто даже не удосужился взглянуть. Я недавно на форуме. Не подскажешь, как найти обсуждение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2015, 17:02 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
ArrisioСоздаю LOV который смотрит на S_People и прикрепляю его к колонкам IR , в которых фигурируют сотрудники. Проблема в том, что сотрудников заведено много и штатный LOV достаточно медленно работает с их списком если без LOV а сразу JOIN? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2015, 19:48 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Petro123, Petro123если без LOV а сразу JOIN? Оставить тип колонки "plain text" , а тип фильтрации "Use Define List of velues ..." и вставить туда запрос из LOV ? Попробовал -так же медленно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 11:59 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Arrisio, Ты о чём? Я о том чтобы фио расшифровывалось в основном запросе IR. Вообще без LOV. Будет точно быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 18:22 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Petro123Arrisio, Ты о чём? Я о том чтобы фио расшифровывалось в основном запросе IR. Вообще без LOV. Будет точно быстро. Ты не внимательно читал, он же нам объяснил, в случае ограничение строк при фильтрации выдаст не всех сотрудников, именно поэтому он использует лов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 09:16 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
blkangelPetro123Arrisio, Ты о чём? Я о том чтобы фио расшифровывалось в основном запросе IR. Вообще без LOV. Будет точно быстро. Ты не внимательно читал, он же нам объяснил, в случае ограничение строк при фильтрации выдаст не всех сотрудников, именно поэтому он использует лов я это и не понял. Т.е. нажал на фильтр и там нужны ВСЕ в СУБД? ЗАЧЕМ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 09:30 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
IMHO идиотское желание. Я знаю, что у меня фильтр в 4-ке показывает только текущие с учётом пагинации (разбивки на страницы). Но никогда в голову не приходило хотеть увидеть все из БД. Либо я что-то не понял). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 09:33 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Petro123, Похоже, мы не понимаем друг дружку (( Petro123Но никогда в голову не приходило хотеть увидеть все из БД. Допустим, надо увидеть заявки определенного человека. Из-за ограничения кол-ва строк (вывожу 1k из 1млн) ни одна из его заявок не попала в текущее отображение отчета. Это значит , если не вешать LOV и для фильтрации использовать текущие значения (Filter type = Default based on column type), то я никогда не увижу ФИО этого сотрудника в списке выбора для фильтрации. Выход , как его вижу - отображать весь список сотрудников смог ли я прояснить ситуацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 12:21 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Arrisio, сложно понять, когда у тебя вверху скрин Инциденты, а ты хочешь заявки человека. Заявка это Инцидент? ВИ (варианты использования) №1: "заявки Иванова" ===================== - модель один ко многому. - вверху комбобокс ФИО, внизу список заявок? ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 12:48 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
ArrisioИз-за ограничения кол-ва строк (вывожу 1k из 1млн) Пока я не понял БЛ \ прецендент \ ВИ\ постановку задачи, мне трудно понять откуда ограничение на 1k записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 12:51 |
|
||
|
Медленно работает LOV в IR , возвращяющий большой объем данных
|
|||
|---|---|---|---|
|
#18+
Arrisio, я понял))) LOL - ты вывалил всю БД в отчет с именем "вся БД". А нужно сделать отчёт "Заявки &FIRST_NAME." (Заявки Иванова) или как я описал выше "Заявки по пользователям" с группировкой и полем поиска сверху. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 13:32 |
|
||
|
|

start [/forum/topic.php?fid=50&tid=1874822]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 496ms |

| 0 / 0 |
