Oracle mechanics

20.06.2012

JOB для удаления нулевой статистики сегодняшних партиций

Filed under: Oracle,statistics — Игорь Усольцев @ 23:39
Tags: ,

Простой скрипт для создания задания по удалению статистики сегодняшних (заполняемых) партиций, для которых штатно выполненная прошедшей ночью процедура сбора статистики установила NUMROWS=0, что может по-разному влиять на текущие планы запросов

begin
DBMS_SCHEDULER.CREATE_JOB (
   job_name             => 'DROP_0_STATS_4_TODAY_PARTS',
   job_type             => 'PLSQL_BLOCK',
   job_action           => 'begin
                            for part_with_0_stats
                                   in (select table_owner, table_name, partition_name
                                       from dba_tab_partitions        p
                                        where num_rows = 0
                                          and table_owner not in (''SYS'', ''SYSTEM'')
                                          and partition_name like ''%'' || to_char(sysdate, ''&PART_DATE_FORMAT'') || ''%''
                                          and tablespace_name like ''&PART_TS_FORMAT'' || ''%'')
                               loop
                                  DBMS_STATS.delete_table_stats(ownname  => part_with_0_stats.table_owner,
                                                                tabname  => part_with_0_stats.table_name,
                                                                partname => part_with_0_stats.partition_name);
                               end loop;
                            end;',
   start_date           => sysdate,
   repeat_interval      => 'FREQ=HOURLY;INTERVAL=1',
   enabled              => true,
   auto_drop            => FALSE);
end;
/

В отсутствии статистики при стандартном значении optimizer_dynamic_sampling = 2 статистика партиций будет собираться динамически во время разбора запроса (hard parse)


		

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

Комментариев нет.

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 такие блоггеры, как: