Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / oracle 12 тормозят запросы после рестарта базы / 12 сообщений из 12, страница 1 из 1
14.05.2018, 13:23:25
    #39644376
alexe81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
Oracle 12.1 на windows server
До рестарта базы запросы из под apex выполнядись 2-5 секунд, после рестарта базы shutdown immediate, startup запросы выполняются 15-30 минут те что обращаются к apex_collections. Почему так?
...
Рейтинг: 0 / 0
14.05.2018, 13:25:32
    #39644383
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
Данные ушли из кэша?
...
Рейтинг: 0 / 0
14.05.2018, 13:42:59
    #39644395
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
tru55Данные ушли из кэша?
это полюбому.
ТС, другие приборы есть?
...
Рейтинг: 0 / 0
14.05.2018, 14:25:56
    #39644434
alexe81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
Мне кажется проблема не в кэше. Если данные из apex_collectiob скопировать в таблицу (create table as select) и подставить в запрос вместо коллекцииии выполиняется 2,3 сек. Больша таблица тянется из удаленной базы. 2 млн записей 2 гига. А в коллекции маленькая табличка 44 тысячи. Они сравниваются по йио и дате.
Трассировку еще сумею.
...
Рейтинг: 0 / 0
14.05.2018, 14:56:57
    #39644464
ORA__SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
alexe81Почему так?Merge Join Cartesian и 300 лямов в actual rows
...
Рейтинг: 0 / 0
14.05.2018, 14:59:05
    #39644466
alexe81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
Если с таблицей вместо коллекции то получается так:

Код: plaintext
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.
PLAN_TABLE_OUTPUT
SQL_ID  fy3fdv8t058jp, child number 1
-------------------------------------
select distinct seq_id, c001,c002,c003,to_char(to_date(c004,'dd-mm-yyyy 
hh24:mi:ss'),'DD.MM.YYYY') ñ004,c005    from       test_col_2    where  
     SEQ_ID not in (select SEQ_ID    from       
test_col_2,fpsp_trunc@pap    where       FIO like 
replace(UPPER(TRIM(c001)||' '||TRIM(c002)||' 
'||TRIM(c003)),'¨','Å')||'%'    and       DTBIRTH= 
to_char(to_date(c004,'dd-mm-yyyy hh24:mi:ss'),'YYYY-MM-DD')    and      
  (          :P2_SEGM is null or instr(:P2_SEGM||',', N_SEGM||',')>0    
    )    and         (          :P2_BEG is null or 
ENT_DATE>to_date(:P2_BEG)         )     and         (          :P2_END 
is null or ENT_DATE<to_date(:P2_END)         ) )
 
Plan hash value: 609694383
 
------------------------------------------------------------------------------------------------------------
| Id  | Operation             | Name       | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     | Inst   |IN-OUT|
------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |            |       |       |       | 15534 (100)|          |        |      |
|   1 |  HASH UNIQUE          |            | 44263 |  3803K|  4176K| 15534   (5)| 00:00:01 |        |      |
|*  2 |   HASH JOIN RIGHT ANTI|            | 44263 |  3803K|       | 12145   (6)| 00:00:01 |        |      |
|   3 |    VIEW               | VW_NSO_1   |    60 |   300 |       | 10096   (7)| 00:00:01 |        |      |
|*  4 |     HASH JOIN         |            |    60 |  9660 |       | 10096   (7)| 00:00:01 |        |      |
|   5 |      REMOTE           | FPSP_TRUNC |   522 | 55854 |       |  8048   (8)| 00:00:01 | PAP    | R->S |
|   6 |      TABLE ACCESS FULL| TEST_COL_2 | 44323 |  2337K|       |  2047   (1)| 00:00:01 |        |      |
|   7 |    TABLE ACCESS FULL  | TEST_COL_2 | 44323 |  3592K|       |  2047   (1)| 00:00:01 |        |      |
------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("SEQ_ID"="SEQ_ID")
   4 - access("DTBIRTH"=TO_CHAR(TO_DATE("C004",'dd-mm-yyyy hh24:mi:ss'),'YYYY-MM-DD'))
       filter("FIO" LIKE REPLACE(UPPER(TRIM("C001")||' '||TRIM("C002")||' 
              '||TRIM("C003")),'¨','Å')||'%')
 
Remote SQL Information (identified by operation id):
----------------------------------------------------
 
   5 - SELECT "FIO","DTBIRTH","N_SEGM","ENT_DATE" FROM "FPSP_TRUNC" "FPSP_TRUNC" WHERE (:1 IS NULL 
       OR INSTR(:2,"N_SEGM"||',')>0) AND (:3 IS NULL OR "ENT_DATE">:4) AND (:5 IS NULL OR "ENT_DATE"<:6) 
       (accessing 'PAP' )
...
Рейтинг: 0 / 0
14.05.2018, 15:53:06
    #39644508
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
Оптимизатор оценивает remote в одну запись, оттого и косяк
...
Рейтинг: 0 / 0
14.05.2018, 16:13:31
    #39644514
alexe81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
ORA__SQLalexe81Почему так?Merge Join Cartesian и 300 лямов в actual rows

Я не знаю как это исправить и почему до этого так не было :-(

Пишут надо собирать статистику свежую или увеличить кардинальность хинтом. Хинт надо на apex collection?
apex_collection это же синоним на вьюшку, которая из 3 апексовых таблиц. Которая постоянно разного размера т.к колекции живут пока есть сессия. Т.е. статистику собирать бесполезно. Какой и как правильно указать хинт чтоб избавится от cartesian (декартово произведения)? (No_merge?)
...
Рейтинг: 0 / 0
14.05.2018, 17:44:24
    #39644569
alexe81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
andrey_anonymousОптимизатор оценивает remote в одну запись, оттого и косяк

А где это видно что 1? Разве не 9086? В столбце rows.
...
Рейтинг: 0 / 0
14.05.2018, 19:43:47
    #39644625
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
alexe81andrey_anonymousОптимизатор оценивает remote в одну запись, оттого и косяк

А где это видно что 1? Разве не 9086? В столбце rows.
Это я с мобильного смотрел, сорри.
Оценка ошибочна в следующем NL, там где оптимизатор наивно полагает сделать 7306 поисков по 1 строке, а получает по факту 300 миллионов ROWID.
По которым дергает табличку 300 миллионов раз и имеет на выходе ~10тыс. строк, прошедших фильтр :)
Я бы присмотрелся к этому индексу.
Перекос данных? Кривая статистика/гистограммы? Сломался или отсутствует более подходящий индекс?
...
Рейтинг: 0 / 0
14.05.2018, 20:43:41
    #39644642
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
alexe81,

берете старый план и прибиваете гвоздями
...
Рейтинг: 0 / 0
15.05.2018, 15:31:11
    #39645068
nomail
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oracle 12 тормозят запросы после рестарта базы
xtenderalexe81,

берете старый план и прибиваете гвоздями

Дак нет старого в dba_hist_% :-( Он у меня короткий, чувствую тут либо hint нужен или както ему завысить стоимость.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / oracle 12 тормозят запросы после рестарта базы / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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