Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Администрирование Oracle Database:
- Установка и настройка базы данных
- Обновление, применение патчей
- Оптимизация, настройка производительности
- Обучение, подготовка персонала, оптимизация
  • Страница:
  • 1
  • 2

ТЕМА:

Re: Oracle: В каком представлении содержится реальный размер 12 года 7 мес. назад #3342

DECLARE
сВладелец VARCHAR2(30) := 'Ваш_владелец';
сОбъект VARCHAR2(30) := 'Ваш_индекс';
сТип VARCHAR2(30) := 'INDEX';
нБлокБД NUMBER;

TABLESPACE_NAME VARCHAR2(30);
CURR_EXTENTS NUMBER;
INITIAL_EXTENT NUMBER;
NEXT_EXTENT NUMBER;
MIN_EXTENTS NUMBER;
MAX_EXTENTS NUMBER;
PCT_INCREASE NUMBER;


FREE_BLKS NUMBER;
TOTAL_BLOCKS NUMBER;
TOTAL_BYTES NUMBER;
UNUSED_BLOCKS NUMBER;
UNUSED_BYTES NUMBER;
LAST_USED_EXTENT_FILE_ID NUMBER;
LAST_USED_EXTENT_BLOCK_ID NUMBER;
LAST_USED_BLOCK NUMBER;
BEGIN

SELECT P.VALUE
INTO нБлокБД
FROM V$PARAMETER P
WHERE P.NAME = 'db_block_size';

SELECT S.TABLESPACE_NAME, S.EXTENTS, S.INITIAL_EXTENT, S.NEXT_EXTENT, S.MIN_EXTENTS, S.MAX_EXTENTS, S.PCT_INCREASE
INTO TABLESPACE_NAME, CURR_EXTENTS, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE
FROM DBA_SEGMENTS S
WHERE S.SEGMENT_NAME = сОбъект
AND S.OWNER = сВладелец
AND S.SEGMENT_TYPE = сТип;



DBMS_SPACE.FREE_BLOCKS (SEGMENT_OWNER => сВладелец, SEGMENT_NAME => сОбъект, SEGMENT_TYPE => сТип, FREELIST_GROUP_ID => 0, FREE_BLKS => FREE_BLKS);

DBMS_SPACE.UNUSED_SPACE(SEGMENT_OWNER => сВладелец,
SEGMENT_NAME => сОбъект,
SEGMENT_TYPE => сТип,
TOTAL_BLOCKS => TOTAL_BLOCKS,
TOTAL_BYTES => TOTAL_BYTES,
UNUSED_BLOCKS => UNUSED_BLOCKS,
UNUSED_BYTES => UNUSED_BYTES,
LAST_USED_EXTENT_FILE_ID => LAST_USED_EXTENT_FILE_ID,
LAST_USED_EXTENT_BLOCK_ID => LAST_USED_EXTENT_BLOCK_ID,
LAST_USED_BLOCK => LAST_USED_BLOCK);

DBMS_OUTPUT.PUT_LINE(сВладелец||'.'||сОбъект||'('||сТип||') - табличное пространство '||TABLESPACE_NAME);
DBMS_OUTPUT.PUT_LINE('ЭКСТЕНТОВ: '||CURR_EXTENTS);
DBMS_OUTPUT.PUT_LINE('
Параметры хранения
');
DBMS_OUTPUT.PUT_LINE('НАЧАЛЬНЫЙ ЭКСТЕНТ: '||INITIAL_EXTENT/нБлокБД||'/'||INITIAL_EXTENT);
DBMS_OUTPUT.PUT_LINE('NEXT ЭКСТЕНТ: '||NEXT_EXTENT/нБлокБД||'/'||NEXT_EXTENT);
DBMS_OUTPUT.PUT_LINE('МИНИМУМ ЭКСТЕНТОВ: '||MIN_EXTENTS);
DBMS_OUTPUT.PUT_LINE('МАКСИМУМ ЭКСТЕНТОВ/(% ИСПОЛЬЗОВАНО): '||MAX_EXTENTS||' / ('||ROUND(CURR_EXTENTS/MAX_EXTENTS*100, 2)||'%)');
DBMS_OUTPUT.PUT_LINE('PCT_INCREASE: '||PCT_INCREASE);
DBMS_OUTPUT.PUT_LINE('
Использование пространства
');
DBMS_OUTPUT.PUT_LINE('В СПИСКЕ СВОБОДНЫХ БЛОКОВ: '||FREE_BLKS);
DBMS_OUTPUT.PUT_LINE('ВСЕГО БЛОКОВ: '||TOTAL_BLOCKS);
DBMS_OUTPUT.PUT_LINE('ВСЕГО БАЙТ: '||TOTAL_BYTES);
DBMS_OUTPUT.PUT_LINE('НЕИСПОЛЬЗОВАНО БЛОКОВ (СПРАВА ОТ HWM): '||UNUSED_BLOCKS);
DBMS_OUTPUT.PUT_LINE('НЕИСПОЛЬЗОВАНО БАЙТ: '||UNUSED_BYTES);
DBMS_OUTPUT.PUT_LINE('# ФАЙЛА ПОСЛЕДНЕГО ЭКСТЕНТА '||LAST_USED_EXTENT_FILE_ID);
DBMS_OUTPUT.PUT_LINE('# БЛОКА ПОСЛЕДНЕГО ЭКСТЕНТА '||LAST_USED_EXTENT_BLOCK_ID);
DBMS_OUTPUT.PUT_LINE('ОТМЕТКА HWM (БЛОК): '||LAST_USED_BLOCK);
DBMS_OUTPUT.PUT_LINE('
');
END;

Как более подробно узнать использование , не знаю. Но покрайней мере 96К получишь.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: В каком представлении содержится реальный размер 12 года 7 мес. назад #3343

Реально занимаемое место для индекса можно получить :
- analyze index ind_name validate structure
- проверить значение PCT_USED в таблице index_stats - это и будет процент реально занятого места от общего размера индекса.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: В каком представлении содержится реальный размер 12 года 7 мес. назад #3344

Всем ОГРОМНОЕ СПАСИБО!
Сейчас все проверю.
Пока нашел как то что мне нужно вычислить используя dbms_unused...

у меня скрипт выдал такую ошибку после подстанвки моих значений :(

: (Error): ORA-10618: Operation not allowed on this segment ORA-06512: at "SYS.DBMS_SPACE", line 74 ORA-06512: at line 38


Но судя по скрипту - то что доктор прописал....
А ты не могбы его изменить так чтобы он по всем индексам какой либо схемы пробежался.

Насчет мин экстент и макс экстент для Таб пространств - не важно ибо у меня они все УНИФОРМ САЙЗ...
т.е. первые выборки вроде даже и не нужны...
Спасибо!
SELECT P.VALUE
INTO нБлокБД
FROM V$PARAMETER P
WHERE P.NAME = 'db_block_size';

SELECT S.TABLESPACE_NAME, S.EXTENTS, S.INITIAL_EXTENT, S.NEXT_EXTENT, S.MIN_EXTENTS, S.MAX_EXTENTS, S.PCT_INCREASE
INTO TABLESPACE_NAME, CURR_EXTENTS, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE
FROM DBA_SEGMENTS S
WHERE S.SEGMENT_NAME = сОбъект
AND S.OWNER = сВладелец
AND S.SEGMENT_TYPE = сТип;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
Время создания страницы: 0.343 секунд