13.10.2011 16:29
idus_
 
А вот, что я увидел на другой нашей базе с такой же проблемой:

15:20:11 SYS@EMCOR1 in ODU>select s.owner, sum(s.bytes)/1024/1024/1024, i.table_name
15:20:14 2 from dba_segments s, dba_indexes i
15:20:14 3 where s.owner=i.owner and s.segment_name=i.index_name
15:20:14 4 and s.segment_type='INDEX'
15:20:14 5 group by s.owner, i.table_name
15:20:14 6 order by sum(s.bytes) desc
15:20:15 7 ;

OWNER SUM(S.BYTES)/1024/1024/1024 TABLE_NAME
------------------------------ --------------------------- ------------------------------
EMCOS 23,119812 RODO
EMCOS 6,27331543 EV
EMCOS 6,2333374 STA_PRQ
EMCOS 2,91369629 AUD_DATA
EMCOS 2,80895996 STA_PH_DATA
EMCOS 2,17614746 STA_PRQ_DATA
EMCOS 1,6942749 PLUP
EMCOS 1,58197021 PLEP
EMCOS ,770690918 AUD_DATA_PARAM
EMCOS ,502197266 AUD_DATA_KEYS
EMCOS ,50189209 STA_GRQ_DATA
EMCOS ,218139648 AUD_SE
SYS ,1953125 WRI$_OPTSTAT_HISTGRM_HISTORY
EMCOS ,177490234 CP_DATA
EMCOS ,164367676 XFE_PL_DATA
EMCOS ,142028809 QUEST_PPCM_TIME_SNAP
EMCOS ,123168945 AUD_SEP
EMCOS ,092773438 AUD_SEP_RC
EMCOS ,078857422 QUEST_PPCM_ADVISORY_SNAP
EMCOS ,052185059 AUD_DI
..........................................................................................
..........................................................................................

YSMAN ,000061035 MGMT_USER_TARGETS
SYSMAN ,000061035 MGMT_CONTAINER_CREDENTIALS
SYSMAN ,000061035 MGMT_HC_HARDWARE_MASTER

1526 строк выбрано.

Затрач.время: 00:00:01.71

Это означает, что какой-то индекс занимает 23Гб??
Посоветуйте, пожалуйста, что можно сделать для уменьшения занимаемого пространства?
13.10.2011 16:38
akonev
 
Цитата:
idus_
Это означает, что какой-то индекс занимает 23Гб??
Посоветуйте, пожалуйста, что можно сделать для уменьшения занимаемого пространства?
нет. это все индексы по таблице занимают 23Гб. по RODO их у тебя 9 штук значится.

что делать? задуматься крепко: надо ли их там столько, индексов этих?
13.10.2011 16:42
akonev
 
Индексы по RODO
Код:
select s.owner, i.index_name, sum(s.bytes)/1024/1024/1024
from dba_segments s, dba_indexes i
where s.owner=i.owner and s.segment_name=i.index_name
  and s.segment_type='INDEX'
  and i.table_name='RODO'
group by s.owner, i.index_name
order by sum(s.bytes) desc
;
13.10.2011 16:50
OlegON
 
Это табличка занимает 23Гб, индексы на ней может и больше. Сделай запросик на индексы, посмотрим их размеры.
Если занимаемое пространство - единственное, что тебя беспокоит, то
alter table EMCOS.RODO move compress;
на всех больших индексах
alter index .... rebuild compress;
если кардинальность подходит, то можно из обычного индекса сделать bitmap.
13.10.2011 16:56
akonev
 
Цитата:
OlegON Это табличка занимает 23Гб, индексы на ней может и больше...
не-не-не... это индексы по ней.

а так-то да. ребилдить сначала и смотреть, чего получилось.
13.10.2011 17:40
idus_
 
Сделал для индекса
alter index RODO_USER_I rebuild compress;
он был 3,03 Гб, стал 2,49. Результат есть...
а не повредит ли такое ужатие базе?
13.10.2011 18:09
OlegON
 
Данные будут в целости и сохранности так же, как и без сжатия.
14.10.2011 07:21
Mtirt
 
А скорость работы?
14.10.2011 07:27
OlegON
 
Если винты раньше проседали, то может и увеличиться... Его же это не интересует. Там главное - место сэкономить.
14.10.2011 08:56
AlexeyF
 
вопрос про прочитанное, для расширения кругозора...
compress индексы и таблицы - уменьшился размер под эти таблицы и индексы, быстрее чтение с диска. Получается нагрузка на проц. должна увеличиться ? Скорость записи должна уменьшиться ?
Часовой пояс GMT +3, время: 11:46.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.