Oracle mechanics

02.03.2016

12c: данные SPM Baseline в SYS.SQLOBJ$PLAN

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

Ежели в версии 11g Oracle хранил данные всех элементов системы SQL Plan Mangement (SPM, включая SQL Patch, SQL Profile и SQL Plan Baseline (SPB)) в SYS.SQLOBJ$DATA.COMP_DATA, то, начиная с 12.1 данные, составляющие собственно Baseline, переместились в clob OTHER_XML новой таблицы SQLOBJ$PLAN, которая также содержит полный план выполнения на момент создания SPM Baseline-а

Этот сохранённый план может быть любопытен в иллюстративных целях, например, при просмотре через Enterprise Manager/Cloud Control, или через соответствующий command line скрипт SPB12.SQL представляет информацию в следующем виде:

SQL> @spb12 SQL_PLAN_dj7zm0ymrpszr7b93d23d
 
OPERATION                            QBLOCK_NAME    OBJECT_ALIAS  OPTIMIZER      COST CARDINALITY TEMP_SPACE TIME
------------------------------------ -------------- ------------- -------------- ---- ----------- ---------- ----
  SELECT STATEMENT                                                HINT: ALL_ROWS    7           1               1
    NESTED LOOPS                     SEL$5DA710D3                                   7           1               1
      SORT UNIQUE                                                                   5           1               1
        TABLE ACCESS BY INDEX ROWID  SEL$5DA710D3   LINE@SEL$2    ANALYZED          5           1               1
          INDEX RANGE SCAN           SEL$5DA710D3   LINE@SEL$2    ANALYZED          4           1               1
      TABLE ACCESS BY INDEX ROWID    SEL$5DA710D3   GT@SEL$1                        1           1               1
        INDEX RANGE SCAN             SEL$5DA710D3   GT@SEL$1                        1           1               1
 
Notes
--------------------------------------------------------------------------------
   sql_profile:
   sql_patch:
   baseline:
   outline:
   dyn_sampling:    2
   dop:
   dop_reason:
   card_feedback:
   perf_feedback:
   adaptive_plan:
   spd_used:
   spd_valid:
   gtt_sess_stat:
   db_version:      12.1.0.2
   plan_hash_full:  2073285181
   plan_hash:       2366143273
   plan_hash_2:     2073285181
 
 
BIND
------------------------------------------------------------------------------------------------------
<bind nam=":B3" pos="1" dty="2" pre="0" scl="0" mxl="22">c20302</bind>
<bind nam=":B2" pos="2" dty="1" csi="171" frm="1" mxl="32">50555243484153455f4f52444552</bind>
<bind nam=":B1" pos="3" dty="1" csi="171" frm="1" mxl="32">504f5f5041</bind>
<bind nam=":B3" pos="4" ppo="1" dty="2" pre="0" scl="0" mxl="22">c20302</bind>
<bind nam=":B2" pos="5" ppo="2" dty="1" csi="171" frm="1" mxl="32">50555243484153455f4f52444552</bind>
<bind nam=":B1" pos="6" ppo="3" dty="1" csi="171" frm="1" mxl="32">504f5f5041</bind>
<bind nam=":B4" pos="7" dty="2" pre="0" scl="0" mxl="22">c442554343</bind>
 
OUTLINE_HINTS
------------------------------------------------------------------------------------------------------
SEMI_TO_INNER(@"SEL$5DA710D3" "LINE"@"SEL$2")
USE_NL(@"SEL$5DA710D3" "GT"@"SEL$1")
LEADING(@"SEL$5DA710D3" "LINE"@"SEL$2" "GT"@"SEL$1")
INDEX_RS_ASC(@"SEL$5DA710D3" "GT"@"SEL$1" (...))
INDEX_RS_ASC(@"SEL$5DA710D3" "LINE"@"SEL$2" (...))
OUTLINE(@"SEL$2")
OUTLINE(@"SEL$1")
UNNEST(@"SEL$2")
OUTLINE_LEAF(@"SEL$5DA710D3")
ALL_ROWS
OPT_PARAM('_fix_control' '17376322:0')
DB_VERSION('12.1.0.2')
OPTIMIZER_FEATURES_ENABLE('11.2.0.3')
IGNORE_OPTIM_EMBEDDED_HINTS

Кроме того, на сайте поддержки появилось правильное рук-во по очистке системы от множества скопившихся SPM Baseline-ов (очевидно, в рез-те экспериментов с параметром OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES) Deciding How to Purge Millions of Unwanted SPM Baselines to Reduce SYSAUX Space Usage (Doc ID 2012720.1), где одним из пунктов предлагается способ быстрого удаления SPM Baseline-ов:

6. Truncate all of the SMB tables:

SQL> truncate table SQL$;
SQL> truncate table SQL$TEXT;
SQL> truncate table SQLOBJ$;
SQL> truncate table SQLOBJ$DATA;
SQL> truncate table SQLOBJ$AUXDATA;
SQL> truncate table SQLOBJ$PLAN;    -- 12c only

Определяющие данные остальных элементов SPM (SQL Patch и SQL Profile) по-прежнему хранятся в SYS.SQLOBJ$DATA.COMP_DATA

1 комментарий »

  1. […] дополнение к одной из предыдущих заметок оказалось, что в SYS.SQLOBJ$PLAN хранятся данные только […]

    Уведомление от 12c: данные SPM Baseline в SYS.SQLOBJ$PLAN, необходимое уточнение | Oracle mechanics — 04.04.2016 @ 23:31 | Ответить


RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: