Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 DBMS_STAT & partition table  [new]
Dimanыch
Member

Откуда:
Сообщений: 49
Всем привет!
возникла проблема:
Oracle 9, Есть партиционная таблица, 12 партиций, в каждой по 10 милл строк, причём из-за того, что таблица разраслась резко, некоторые партиции пришлось перенести в другую табличную область. делаю так:

BEGIN
   dbms_output.put_line(sysdate||' starting erase statistics');
   DBMS_STATS.DELETE_TABLE_STATS (
       ownname => '',
       tabname => ');
   dbms_output.put_line(sysdate||' starting gather statistics');
   DBMS_STATS.GATHER_TABLE_STATS (
      OwnName => '',     
      TabName  => 'table_name',    
      Degree  => 4,          
      Cascade  => FALSE);        
dbms_output.put_line('fnished');  
END;

вобщем, удаление статистики - моментально.
1) вопрос: нужно ли удалять статистику перед сбором?

сбор статистики упирается в первую партицию... ждал сутки. процесс так и идёт.
смотрю активные сессии. 4 штуки. 3 не выполняют ничего и занимают только pga, а одна делает так:
select  /*+ cursor_sharing_exact dynamic_sampling(0) no_monitoring parallel(t,4)  parallel_index(t,4) */  count(*),count("FID"),count(distinct "FID"),sum(vsize("FID")),substrb(dump(min("FID"),16,0,32),1,120),substrb(dump(max("FID"),16,0,32),1,120),count("CALL_DATE"),count(distinct "CALL_DATE"),substrb(dump(min("CALL_DATE"),16,0,32),1,120),substrb(dump(max("CALL_DATE"),16,0,32),1,120),count("PHONE_A"),count(distinct "PHONE_A"),sum(vsize("PHONE_A")),substrb(dump(min("PHONE_A"),16,0,32),1,120),substrb(dump(max("PHONE_A"),16,0,32),1,120),count("PHONE_B"),count(distinct "PHONE_B"),sum(vsize("PHONE_B")),substrb(dump(min("PHONE_B"),16,0,32),1,120),substrb(dump(max("PHONE_B"),16,0,32),1,120),count("DLIT"),count(distinct "DLIT"),sum(vsize("DLIT")),substrb(dump(min("DLIT"),16,0,32),1,120),substrb(dump(max("DLIT"),16,0,32),1,120),count("NAPA"),count(distinct "NAPA"),sum(vsize("NAPA")),substrb(dump(min("NAPA"),16,0,32),1,120),substrb(dump(max("NAPA"),16,0,32),1,120),count("NAPB"),count(distinct "NAPB"),sum(vsize("NAPB")),substrb(dump(min("NAPB"),16,0,32),1,120),substrb(dump(max("NAPB"),16,0,32),1,120),count("AON"),count(distinct "AON"),sum(vsize("AON")),substrb(dump(min("AON"),16,0,32),1,120),substrb(dump(max("AON"),16,0,32),1,120),count("CODE"),count(distinct "CODE"),sum(vsize("CODE")),substrb(dump(min("CODE"),16,0,32),1,120),substrb(dump(max("CODE"),16,0,32),1,120),count("TTYPE"),count(distinct "TTYPE"),sum(vsize("TTYPE")),substrb(dump(min("TTYPE"),16,0,32),1,120),substrb(dump(max("TTYPE"),16,0,32),1,120),count("SRC_PHONE_A"),count(distinct "SRC_PHONE_A"),sum(vsize("SRC_PHONE_A")),substrb(dump(min("SRC_PHONE_A"),16,0,32),1,120),substrb(dump(max("SRC_PHONE_A"),16,0,32),1,120),count("SRC_PHONE_B"),count(distinct "SRC_PHONE_B"),sum(vsize("SRC_PHONE_B")),substrb(dump(min("SRC_PHONE_B"),16,0,32),1,120),substrb(dump(max("SRC_PHONE_B"),16,0,32),1,120),count("INSERT_DATE"),count(distinct "INSERT_DATE"),substrb(dump(min("INSERT_DATE"),16,0,32),1,120),substrb(dump(max("INSERT_DATE"),16,0,32),1,120)
from "ЯЯЯЯЯЯ"."ТАБЛИЧКА$" partition ("ПАРТИТИОН") t

2) вопрос: почему так долго - сутки и селект один и тот же. Всё ли правильно делаю?

возможно каряво объяснил - заранее прошу простить великодушно, я только начинаю...
заранее спасибо!
11 окт 07, 04:26    [4781946]     Ответить | Цитировать Сообщить модератору
 Re: DBMS_STAT & partition table  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
1. Не обязательно
2. Смотреть ожидания (V$SESSION_WAIT)
11 окт 07, 04:34    [4781948]     Ответить | Цитировать Сообщить модератору
 Re: DBMS_STAT & partition table  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Ну и SHOW PARAMETER PARALLEL
11 окт 07, 04:35    [4781949]     Ответить | Цитировать Сообщить модератору
 Re: DBMS_STAT & partition table  [new]
Dimanыch
Member

Откуда:
Сообщений: 49
select *
from V$SESSION_WAIT
where sid=17

SID	SEQ#	EVENT	             P1TEXT	             P1	P1RAW	             P2TEXT	
17	22165	direct path read	file number	206	000000CE	first dba	

P2          P2RAW	             P3TEX	   P3	P3RAW	   WAIT_TIME         SECONDS_IN_WAIT
1082057	001082C9	block cnt	   1	00000001	-1	            0	

STATE
WAITED KNOWN TIME
_______________________________

SQL> show parameter parallel

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
fast_start_parallel_rollback         string      LOW
log_parallelism                      integer     1
parallel_adaptive_multi_user         boolean     FALSE
parallel_automatic_tuning            boolean     FALSE
parallel_execution_message_size      integer     2148
parallel_instance_group              string
parallel_max_servers                 integer     5
parallel_min_percent                 integer     0
parallel_min_servers                 integer     0
parallel_server                      boolean     FALSE
parallel_server_instances            integer     1

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
parallel_threads_per_cpu             integer     2
recovery_parallelism                 integer     0

готово. чтото не о чом мне это не говорит.
11 окт 07, 07:15    [4782019]     Ответить | Цитировать Сообщить модератору
 Re: DBMS_STAT & partition table  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Ну, помониторь V$SESSION_LONGOPS до кучи
11 окт 07, 07:22    [4782020]     Ответить | Цитировать Сообщить модератору
 Re: DBMS_STAT & partition table  [new]
.....
Member

Откуда:
Сообщений: 473
Dimanыch
....


вот это желательно выставить в true
parallel_adaptive_multi_user         boolean     FALSE
parallel_automatic_tuning            boolean     FALSE

можно немного поднять, хотя бы до 8-ми
parallel_execution_message_size      integer     2148

сколько у вас CPU?

Далее запуская сбор стастики таким образом у вас собирается по дефолту GLOBAL и PARTITION статистика. Я бы выбрал или то или это.

Какой-то странный у вас direct path read, чему равно db_file_multiblock_read_count?
11 окт 07, 09:29    [4782214]     Ответить | Цитировать Сообщить модератору
 Re: DBMS_STAT & partition table  [new]
.....
Member

Откуда:
Сообщений: 473
смотрю активные сессии. 4 штуки


ну и смотрте что ждут эти сессии. То что вы показали по ожиданиям ни о чем не говорит
11 окт 07, 09:30    [4782219]     Ответить | Цитировать Сообщить модератору
 Re: DBMS_STAT & partition table  [new]
Dimanыch
Member

Откуда:
Сообщений: 49
Спасибо всем за участие.
Параметры посмотрел, в нете доки почитал. Вроде всё выставлено нормально.
Пересоздал temporary ts (так как то было забито под крышку).
запускаю статистику (отдельно global и partition) летает!
15 окт 07, 07:14    [4792683]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить