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

Код: 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
oracle 12 тормозят запросы после рестарта базы
    #39644508
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оптимизатор оценивает remote в одну запись, оттого и косяк
...
Рейтинг: 0 / 0
oracle 12 тормозят запросы после рестарта базы
    #39644514
alexe81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ORA__SQLalexe81Почему так?Merge Join Cartesian и 300 лямов в actual rows

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

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

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

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

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

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

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


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