Налетел тут. Версия 11g (как, впрочем, и 10g) впихивает свои задания по сбору статистики, чем и развлекается в свободное от работы время. Я обычно отключаю его, поскольку предположения индусов о том, что ночью база свободна, расходятся с действительностью практически всегда.
Итак, пропустим вариант раздувания SYSTEM из-за того, что AUD$ кто-то забывает чистить. Расскажу об утреннем инциденте. Место в SYSTEM кончилось. Лезу смотреть.
Код:
select owner,segment_name,segment_type,bytes/1024/1024/1024 size_G
from dba_segments
where tablespace_name = 'SYSTEM'
and bytes/1024/1024/1024 >1
order by size_G desc
на выходе получаю в топе SYS.C_OBJ#_INTCOL#, CLUSTER.
Собственно, поскольку кластер - это объединение нескольких сегментов, копаю дальше.
Код:
select owner,table_name from dba_tables where cluster_name='C_OBJ#_INTCOL#'
выдает уже более интересное SYS.HISTGRM$.
Соответственно, из-за того, что работает автоматическое задание, собирающее гистограммы по всему, чему ни попадя (FOR ALL INDEXED COLUMNS или FOR ALL COLUMNS или METHOD_OPT=AUTO), гистограмм стало многовато (куча партиций несупермажной БД).
Для непромышленной БД можно попробовать очистку (на свой страх и риск, с бекапами и т.п.):
Код:
alter system set event='38003 trace name context forever, level 10' scope=spfile;
рестартовать БД
Код:
truncate cluster c_obj#_intcol#;
выкинуть 38003 event из spfile и рестартовать БД.