[ТЕМА ЗАКРЫТА]
Опции темы
21.04.2009 17:52  
OlegON
Все нижесказанное мое ИМХО, испытанное той практикой, которую прошел я.
Значит первое, что я хочу посоветовать, несмотря на уважение к Тому Кайту, это чтобы пользователи версий Оракла ниже 10g не трогали пакет DBMS_STAT. Спорить не буду. analyze ... compute statistics рулит, как говорится, не по детски. На десятке столкнулся с таким очень неприятным явлением, что по секционированной FFMAPREP DBMS_STAT уходил в глубокую задумчивость, втыкаясь на несколько суток. Лечение подсказали:
Код:
SYS.DBMS_STATS.GATHER_SCHEMA_STATS ( OWNNAME=>'SUPERMAG',method_opt=> 'for all indexed columns size auto', CASCADE=>TRUE, ESTIMATE_PERCENT=>100);
последний параметр и выручает...
 
21.04.2009 18:04  
OlegON
Немного о сборе системной статистики, которая достаточно важна для 10ки (в 9ке я кроме глюков ничего не уловил).
Собирается просто:
Код:
dbms_stats.gather_system_stats(gathering_mode=>'interval',interval=>600);
в качестве параметра - минуты. Собирать надо во время обычной нагрузки базы. Бывает, что глюкает, просто сообщая, что не может расчитать статистику. Для решения этой болячки просто руками запускаем и стопим сбор:
Код:
dbms_stats.gather_system_stats('Start');
dbms_stats.gather_system_stats('Stop');
Впрочем, можно собирать и вручную сразу...
 
02.09.2009 18:08  
Mr_Vito
а как часто нужен сбор системной статистики?
 
02.09.2009 22:32  
OlegON
Зависит от изменения нагрузки на базу и от возможного изменения железа/перекладывания по разным винтам и пр. аналогичное. Я не стал заморачиваться - на самой сложной базе воткнул по понедельникам с 11 до 13, это самый показательный период. Если что-скажут сразу после этого...
 
03.09.2009 13:38  
Mr_Vito
т.е. ты воткнул с интервал = 120 (2 часа)?
600 это ведь 10 часов
 
03.09.2009 13:59  
OlegON
Именно так. В примере выше другая ситуация была.
 
17.05.2010 16:31  
leonid
На Oracle 10G при объеме FFMAPREP ~ 11G

Код:
ANALYZE TABLE SUPERMAG.FFMAPREP COMPUTE STATISTICS
вообще ничего не собирает,

Код:
SYS.DBMS_STATS.GATHER_SCHEMA_STATS ( OWNNAME=>'SUPERMAG',method_opt=> 'for all indexed columns size auto', CASCADE=>TRUE, ESTIMATE_PERCENT=>100);
- ночи не хватило,

Пробую сделать так:
Код:
exec SYS.DBMS_STATS.gather_table_stats( OWNNAME=>'SUPERMAG', tabname => 'FFMAPREP',method_opt=> 'for all indexed columns size auto', CASCADE=>TRUE, ESTIMATE_PERCENT=>30);
Посмотреть примерно ход выполнения можно так:
Код:
select l.sofar, l.totalwork, l.last_update_time, l.message
from v$session_longops l
where
 l.target_desc like '%FFMAPREP%'
 
21.05.2010 07:16  
slava
У нас база на 9i стала резко тормозить после

DBMS_STATS.gather_table_stats(ownname => 'SUPERMAG',
tabname => TableToAnalyzeRow.Table_Name, -- таблицы из USER_TABLES
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
block_sample => TRUE,
method_opt => 'FOR ALL INDEXED COLUMNS SIZE AUTO',
degree => DBMS_STATS.DEFAULT_DEGREE,
granularity => 'ALL',
cascade => FALSE);

DBMS_STATS.GATHER_INDEX_STATS (
ownname => 'SUPERMAG',
indname => IndxToAnalyzeRow.index_name, -- Индексы по таблице
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
degree => DBMS_STATS.DEFAULT_DEGREE,
granularity => 'ALL'
);

Вся беда по нашим оценкам DBMS_STATS.AUTO_SAMPLE_SIZE,
а вот DBMS_STATS.DEFAULT_DEGREE - рулит.
 
21.05.2010 10:28  
John Doe
Я бы вообще на 9 не стал бы пользоваться DBMS_STATS, оно там глючило по черному.
В причинах тормозов не пытались разобраться? Системная статистика собрана? Хотя и ее бы я на 9 не стал собирать.
 
21.05.2010 14:33  
kadr
Цитата:
Сообщение от slava
У нас база на 9i стала резко тормозить после

DBMS_STATS.gather_table_stats(ownname => 'SUPERMAG',
tabname => TableToAnalyzeRow.Table_Name, -- таблицы из USER_TABLES
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
block_sample => TRUE,
method_opt => 'FOR ALL INDEXED COLUMNS SIZE AUTO',
degree => DBMS_STATS.DEFAULT_DEGREE,
granularity => 'ALL',
cascade => FALSE);

DBMS_STATS.GATHER_INDEX_STATS (
ownname => 'SUPERMAG',
indname => IndxToAnalyzeRow.index_name, -- Индексы по таблице
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
degree => DBMS_STATS.DEFAULT_DEGREE,
granularity => 'ALL'
);

Вся беда по нашим оценкам DBMS_STATS.AUTO_SAMPLE_SIZE,
а вот DBMS_STATS.DEFAULT_DEGREE - рулит.
по первому выделению я бы использовал 100% для полного сбора
второе выделение вообще выкинуть, если есть особая необходимость, то для конкретных таблиц указывать конкретные столбцы и размерность


P.S. Ну и проверить наличие статистики на временных таблицах, если есть - грохнуть
 
 


Опции темы



Часовой пояс GMT +3, время: 08:58.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.