Oracle mechanics

01.06.2018

12.2: ORA-979 при разборе запросов с использованием WITH clause, PLSQL function и View Merging

Filed under: 12.2,bugs,Oracle — Игорь Усольцев @ 10:25
Tags: ,

Евгений Калинин обнаружил запрос, факт успешности выполнения которого неожиданно зависел от использования/неиспользования столбцов Inline view(*) а качестве параметров PLSQL_FUNCTION, и худшем случае завершавшийся простой ошибкой:

12.2.0.1.@ SQL> with s_q_by_month as
  2   (select contract_id,
...
 19     group by contract_id,
...
 30  s_q as
 31   (select plsql_function(sum_rub, -- вот этих столбцов *
 32                          max_amt,
...
 36      from (select contract_id,    -- вот этого Inline view
...
 43                   max(amt) as max_amt,
 44                   sum(amt_rub) as sum_rub,
...
 48              from s_q_by_month
 49             group by contract_id,
...
 56  select
 57   * from s_q
 58  /
 * from s_q
          *
ERROR at line 57:
ORA-00979: not a GROUP BY expression

, возникавшей на этапе построения плана, обрывая трассировку где-то в районе Query Transformation — в данном случае трейс заканчивался упоминанием OJE(Outer Join Elimination)

Соответствующая трассировка по номеру ошибки, почерпнутая из Bug 21799456 : ORA-979 ERROR GENERATED FROM A SELECT STATEMENT IN 12C: (more…)

Реклама

01.07.2016

12c: Wrong results в запросах и апрельский DB Bundle Patch

Filed under: bugs,Oracle — Игорь Усольцев @ 00:13
Tags:

Коллега Александр Шведунов указал проблему:

SQL> select
  2   t1.id, t1.category
  3    from t1
  4   where t1.id in
  5         (select p_id from t2 where service_id = 11)
  6     and t1.firm_id in (111)
  7     and t1.category in ('yt', 'ytph')
  8  /

        ID CATEGORY
---------- --------------------
  11101013 ytph -- Wrong results for CATEGORY column
  11101014 ytph
  11101023 ytph
  11101036 ytph

4 rows selected.

SQL> select t1.id, t1.category
  2    from t1
  3   where t1.id in (11101013, 11101014, 11101023, 11101036)
  4  /
 
        ID CATEGORY
---------- --------------------
  11101013 yt   -- True results for CATEGORY column
  11101014 yt
  11101023 yt
  11101036 yt

Из плана ошибочного запроса: (more…)

29.06.2016

12c: проблемы SQLID frjd8zfy2jfdq в ADG

Filed under: Active Data Guard,bugs,Oracle — Игорь Усольцев @ 00:27
Tags:

Наблюдали с Русланом Бикбаевым на обычном, не-EXADATA RAC с ADG 12.1.0.2 проблему Bug 22364629 : EXADATA: ORA-29771: PROCESS USER BLOCKS LGWR FOR MORE THAN 70 SECONDS — казалось бы, мало ли в Oracle 12c багов?)

Тут интересно, что блокером для LGWR выступают пользовательские процессы (+PX-slaves), выполняющие известный* рекурсивный запрос frjd8zfy2jfdq, описанный в Bug 20413540 Excessive executions of SQL frjd8zfy2jfdq, являющемся base bug для Bug 22364629:

The query with SQLID frjd8zfy2jfdq is executed by Dynamic Statistics to figure out the past execution statistics and guide the time allowance for future execution of Dynamic Statistics

*) о том же запросе Рекурсивно-адаптивный SQL_ID «frjd8zfy2jfdq» версии 12.1.0.2

Детали проблемы и место SQLID frjd8zfy2jfdq расписаны в трейсе системного процесса LMHB: (more…)

17.02.2016

UPGRADE 12c: краткий список возможных проблем

Filed under: bugs,Oracle,Plan Management — Игорь Усольцев @ 22:37
Tags:

В блогах Oracle мелькнула заметка Mike Dietrich Some Parameter Recommendations for Oracle 12c, обобщающая некоторые проблемы обновления

Появилась и пропала (#гугльпомнит), вероятно, ввиду недостаточного оптимизма)

Однако, кроме описания различных случаев/багов и соответствующих параметров/workaround-ов, заметка содержала практически официальные описания параметров управления SQL Plan Directives (SPD): (more…)

04.12.2014

ORA-8103 при использовании BCT на standby db

Filed under: Active Data Guard,bugs,Oracle — Игорь Усольцев @ 22:59
Tags: ,

После восстановления очередной тестовой бд с использованием инкрементальных бэкапов, сделанных с использованием Block Change Tracking (BCT) на standby версии 11.2.0.3 получили при попытке последовательно прочитать определённые блоки таблицы:

SQL> select/*+ full(t)*/ count(*) from U2.CALL_STAT t;
 
select/*+ full(t)*/ count(*) from U2.CALL_STAT t
 
ORA-08103: object no longer exists

SQL> analyze table U2.CALL_STAT validate structure;
 
analyze table U2.CALL_STAT validate structure
 
ORA-08103: object no longer exists

, при этом в трейсах можно видеть фактический источник ошибки: (more…)

10.10.2014

Простая проблема при создании AWR снапшотов в Oracle 11g

Filed under: bugs,Диагностика системы (instance),Oracle — Игорь Усольцев @ 00:10
Tags: ,

Проблема действительно несложная (более интересный вариант отписывал ранее) и выражается, кроме собственно прекращения генерации снапшотов, сообщениями в alert.log вида:

ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition WRH$_ACTIVE_1245278029_19314 by 128 in tablespace SYSAUX
ORA-1688: unable to extend table SYS.WRH$_ACTIVE_SESSION_HISTORY partition WRH$_ACTIVE_1245278029_19314 by 8192 in tablespace SYSAUX

, ошибками в трейсах процесса Manageability Monitor (mmon) и детей ея m00x, выраженным ростом партиций сегмента WRH$_LATCH_CHILDREN:

11.2.0.4@ SQL> select * from dba_segments where tablespace_name = 'SYSAUX' and bytes > 1e9 order by bytes desc;
 
SEGMENT_NAME                    PARTITION_NAME                 SEGMENT_TYPE       SEGMENT_SUBTYPE TABLESPACE_NAME      BYTES     BLOCKS
------------------------------- ------------------------------ ------------------ --------------- --------------- ---------- ----------
WRH$_LATCH_CHILDREN             WRH$_LATCH__1245278029_19314   TABLE PARTITION    ASSM            SYSAUX          3414687744    4168320
WRH$_LATCH_CHILDREN_PK          WRH$_LATCH__1245278029_19314   INDEX PARTITION    ASSM            SYSAUX          2771281510    3382912
WRH$_ACTIVE_SESSION_HISTORY     WRH$_ACTIVE_1245278029_19314   TABLE PARTITION    ASSM            SYSAUX          1407188992     171776

, отражена в документе поддержки SYSAUX Tablespace can Become Full Due to WRH$_LATCH_CHILDREN growth (Doc ID 874518.1) и чаще всего возникает при установке statistics_level=ALL на уровне системы

Некоторой определённости заслуживают быстрые методы очистки SYSAUX и перезапуска mmon_slave процессов для возобновления автогенерации снапшотов (more…)

25.06.2014

Особенности преобразования Table Expansion

Filed under: bugs,Oracle,Partitioning — Игорь Усольцев @ 00:03
Tags: ,

Полезное стоимостное (CBQT) преобразование Table Expansion (TE), доступное с версии 11.2, кроме несомненных достоинств имеет ряд недоработок-багов особенностей реализации и применения, периодически омрачающих радость столкновений с лучшим из стоимостных оптимизаторов (CBO)

Далее — краткий обзор случаев неоднозначного поведения TE, доступных в версиях 11.2 — 12.1.0.1

И вначале — о хорошем: для случая простого Range Partitioning технология успешно отрабатывает независимо от количества и порядка расположения Unusable Index Partitions: (more…)

18.11.2013

Конкатенация против INLIST ITERATOR

Filed under: bugs,CBO,hints,Oracle — Игорь Усольцев @ 00:12
Tags: , ,

Достаточно давно Саян Малакшинов описал и уже успешно разрешил через поддержку ( патч + фиксация в версии Oracle 12.2 ) проблему применения / управления операцией INLIST ITERATORUnresolved quiz: Avoiding in-list iterator

И, хотя, к сожалению, заметка попалась на глаза достаточно поздно, 2drink borjomi is 2late, мне кажется интересным рассмотреть этот отличный тест-кейс и предложить ещё один вариант решения с форсированным подсказкой использованием конкатенации, как операции противожной INLIST (more…)

21.09.2013

Перемещение AUD$

Filed under: bugs,Oracle — Игорь Усольцев @ 00:56
Tags: , ,

На версии 11.2.0.3 попытка сократить неоправданно «распухший» сегмент AUD$:

SQL> select tablespace_name,
  2         segment_space_management,
  3         extent_management,
  4         round(bytes / 1024 / 1024 / 1024) as GB
  5    from dba_tablespaces ts
  6    join dba_segments
  7   using (tablespace_name)
  8   where segment_name = 'AUD$'
  9  /

TABLESPACE_NAME  SEGMENT_SPACE_MANAGEMENT EXTENT_MANAGEMENT   GB
---------------- ------------------------ ----------------- ----
SYSAUX           AUTO                     LOCAL               20

, уже находящийся в ASSM табличном пространстве, согласно рекомендациям How To Shrink Table AUD$ (Doc ID 1080112.1) для версий 11.2.0.2 — 11.2.0.4 командами:

alter table SYS.AUD$ enable row movement;
ALTER table SYS.AUD$ SHRINK SPACE CASCADE;
alter table SYS.AUD$ disable row movement;

результата не принесла — размер сегмента не изменился, но в логе появились ошибки типа: (more…)

05.08.2013

First K Rows optimization-2

Filed under: bugs,CBO,Oracle — Игорь Усольцев @ 17:55
Tags: , ,

Полтора года назад столкнулся с проблемой оптимизатора при параллельном выполнении запросов с ограничением ROWNUM в версиях 11g, записанной в First K Rows optimization

Сегодня по нашей заявке выпущен соответствующий патч 11858963 PLAN REGRESSION UNDER FIRST_ROWS_10 WITH 4887636 ENABLED,пока только для 11.2.0.3 Linux x86-64 — как просили !

SR Severity2 (Significant), не эскалировал, т.к. варианты решения были давно известны и применены на продакшн

Сложнее всего оказалось пробиться с багом оптимизатора сквозь первую линию поддержки, далее — разработчики Oracle справились всего за 5+ месяцев :)

Следующая страница →

Блог на WordPress.com.