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

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 30135
Gustly,
это всё догадки. Смотри план выполнения и доказывай, что "не верблюд".
У меня не тормозит пока). Долше рендеринг идёт.
20 фев 15, 12:06    [17292103]     Ответить | Цитировать Сообщить модератору
 Re: Помогите по Jquery. Монитор изменений  [new]
Gustly
Member

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

Для меня не догадки. Я смотрел планы и время выполнения. Говорю не с пустого места. Лично у меня пагинация происходила и по 10+ секунд. Когда надо выбирать 30+ столбцов из 10+ таблиц.
20 фев 15, 12:30    [17292303]     Ответить | Цитировать Сообщить модератору
 Re: Помогите по Jquery. Монитор изменений  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7797
Блог
Gustly
Фильтры фильтрами. А вот запрос выполняется всегда полный, даже если надо вывести первые 15 строк из допустим 1000/10к/50к.

Нет.

Посмотреть, во что превращается запрос из Source региона, можно через отладку. Увидеть его план можно через трассировку. Например, есть интерактивный отчёт с запросом:
select * from emp

Отчёт выводит по пять строк на страницы, в нём нет скрытых столбцов, группировок, вычисляемых столбцов и прочего. Смотрим в обработанную трассу:
+
select 
       apxws_row_pk,
       "EMPNO",
       "ENAME",
       "JOB",
       "MGR",
       "HIREDATE",
       "SAL",
       "COMM",
       "DEPTNO",
       count(*) over () as apxws_row_cnt
 from (
select  * from (select b.ROWID apxws_row_pk, b.* from (select *  from (
select 
"EMPNO",
"ENAME",
"JOB",
"MGR",
"HIREDATE",
"SAL",
"COMM",
"DEPTNO"
 from   "EMP"
) ) b) r
) r where rownum <= to_number(:APXWS_MAX_ROW_CNT) 
 order by apxws_row_pk

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        7      0.00       0.00          0          6          0           7
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        9      0.00       0.00          0          6          0           7

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 92  (TEST)   (recursive depth: 1)

Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
      0   WINDOW (SORT)
      0    COUNT (STOPKEY)
      0     TABLE ACCESS   MODE: ANALYZED (FULL) OF 'EMP' (TABLE)

План выполнения тезис про полное выполнение запроса из Source опровергает.
20 фев 15, 12:43    [17292409]     Ответить | Цитировать Сообщить модератору
 Re: Помогите по Jquery. Монитор изменений  [new]
Gustly
Member

Откуда:
Сообщений: 1409
suPPLer,

Я здесь вижу только ограничение по APXWS_MAX_ROW_CNT, которые обычно равно 1000 или 10000. До таких размеров у меня запросы не доходили. В итоге берутся все строки. Покажите лучше запрос с фильтром.
20 фев 15, 12:52    [17292473]     Ответить | Цитировать Сообщить модератору
 Re: Помогите по Jquery. Монитор изменений  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 30135
Gustly
Когда надо выбирать 30+ столбцов из 10+ таблиц.

Какой-то странный пример против APEX.
В ГУИ проблем не было?
В APEX неудобный ГУИ для стольких столбцов.
20 фев 15, 13:03    [17292561]     Ответить | Цитировать Сообщить модератору
 Re: Помогите по Jquery. Монитор изменений  [new]
Gustly
Member

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

Пользователь - создание странное. Разумеется они в экран не помещаются. Их крутят по горизонтали. А потом выгружают в эксель и крутят там.
20 фев 15, 13:10    [17292658]     Ответить | Цитировать Сообщить модератору
 Re: Помогите по Jquery. Монитор изменений  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 30135
Gustly,
я думаю, 5-8 колонок будет летать или терпимо.
А простыни на экран, пусть помучаются или берут клиент-сервер-десктоп.
imho
20 фев 15, 13:36    [17292867]     Ответить | Цитировать Сообщить модератору
 Re: Помогите по Jquery. Монитор изменений  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7797
Блог
Gustly
Я здесь вижу только ограничение по APXWS_MAX_ROW_CNT, которые обычно равно 1000 или 10000. До таких размеров у меня запросы не доходили. В итоге берутся все строки. Покажите лучше запрос с фильтром.

Да, я был неправ, извините. Залез в потроха WWV_FLOW_WORKSHEET, чтобы проверить, как на самом деле идёт вывод конкретной страницы, а там всё печально. Открывают запрос (с фильтрами, сортировкой и прочим) и начинают его фетчить, пока не добираются до p_pg_min_row, после чего выводят строки до p_pg_max_row и закрывают курсор. Такое вот «дубовое» окно, без всяких COUNT STOPKEY в плане и rownum с сортировками в тексте.

С фильтром всё просто:

+
  select apxws_row_pk
, "EMPNO"
, "ENAME"
, "JOB"
, "MGR"
, "HIREDATE"
, "SAL"
, "COMM"
, "DEPTNO"
   from
  (select *
     from
    (select b.rowid apxws_row_pk
    , b.*
       from
      (select *
         from
        (select "EMPNO"
        , "ENAME"
        , "JOB"
        , "MGR"
        , "HIREDATE"
        , "SAL"
        , "COMM"
        , "DEPTNO"
           from "EMP"
        )
      ) b
    ) r
    where
    (
      "JOB" = :apxws_expr_1
    )
  ) r
  where rownum <= to_number(:apxws_max_row_cnt)
order by apxws_row_pk 

1. APXWS_EXPR_1=MANAGER
2. APXWS_MAX_ROW_CNT=1000000 

Это уже через APEX_IR.GET_REPORT с автоформатированием кода.
22 фев 15, 00:10    [17298033]     Ответить | Цитировать Сообщить модератору
 Re: Помогите по Jquery. Монитор изменений  [new]
SvDev
Member

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

Так только в интерактивных отчетах. В обычных уже норм должно быть, в том смысле, что зависит от выбранного типа пагинации

12-й оракл едва ли существенно поможет, т.к. чтобы выбрать 1000-1050 строки, нужно их все равно все отсортировать, + не забываем что апекс работает по принципу stateless, т.е. в конце каждого запроса сессия oracle сбрасывается и отдается другому клиенту, тем самым экономятся ресурсы сервера.
22 фев 15, 13:08    [17298776]     Ответить | Цитировать Сообщить модератору
 Re: Помогите по Jquery. Монитор изменений  [new]
Gustly
Member

Откуда:
Сообщений: 1409
SvDev,

В этом вся проблема, в сортировке. Единственный вариант какой я вижу - это извращенный. Принудительное использование индекса по полю, по которому нужна сортировка, так как в индексе оно уже отсортировано. Тогда уже можно делать выборку 100-150 строк, оно пойдет по отсортированному индексу. Но тогда нужно или куча индексов по всем полям или ограничивать пользователя в свободе выбора сортировки.
24 фев 15, 08:57    [17303221]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Oracle APEX Ответить