powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / В каком представлении содержиться реальный размер
14 сообщений из 14, страница 1 из 1
В каком представлении содержиться реальный размер
    #32134393
Каспер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В каком представлении содержиться реальный размер индекса (сколько он занимает в БД). Много софтин показывают его. А откуда они получают эту информацию?
Кто нить знает? Или как его посчитать?
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134402
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
select 
 segment_name, sum(bytes) sum_byte, count(bytes) cnt_seg
 from 
 dba_segments 
 where 
   owner = 'SYS' and 
  segment_name = 'DUAL'
 group by   segment_name;

SQLWKS> select 
      2 >  segment_name, sum(bytes) sum_byte, count(bytes) cnt_seg
      3 >  from 
      4 >  dba_segments 
      5 >  where 
      6 >    owner = 'SYS' and 
      7 >   segment_name = 'DUAL'
      8 >  group by   segment_name;
SEGMENT_NAME                                                                     SUM_BYTE   CNT_SEG   
 -------------------------------------------------------------------------------- ---------- ----------
 
DUAL                                                                                   16384            1 
Выбрана  1  строка.

 
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134409
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не реальный размер
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134423
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть Каспер проверит значения выдаваемые многими софтинами и этим запросом.
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134426
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, а не проще оттрейсить эти софтины, если так уж интересно?
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134428
Каспер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ, СОФТБИЛДЕР.
НО Действительно он показывает - СКОЛЬКО ЗАНИМАЕТ ИНДЕС КРАТНО ЭКСТЕНТУ!!! Скажем например размер экстента 256 К а реально индекс занимает 10К (High Water Mark = 96 K)
Так вот мне нужно получить значение или 10 К или 96 К.
Эти данные можно получить после analyze соответствующих сегментов.
Но даже если провести АНАЛИЗЕ то откуда брать размер :(((((((?
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134433
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно узнать используя пакет DBMS_SPACE, например, через его процедуры FREE_BLOCKS и UNUSED_SPACE.
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134435
Каспер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ангел плиз можно подробнее!
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134440
Каспер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Scott Tiger
Я говорю о спейс манагере... от Quest Soft....
:)
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134441
Каспер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Scott Tiger
Я говорю о спейс манагере... от Quest Soft....
:)
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134443
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQLWKS> analyze index test.emp_pk validate structure;
Предложение обработано.
SQLWKS> select * from index_stats
      2 > 
HEIGHT     BLOCKS     NAME                           PARTITION_NAME                 LF_ROWS    LF_BLKS    LF_ROWS_LE LF_BLK_LEN BR_ROWS    BR_BLKS    BR_ROWS_LE BR_BLK_LEN DEL_LF_ROW DEL_LF_ROW DISTINCT_K MOST_REPEA BTREE_SPAC USED_SPACE PCT_USED   ROWS_PER_K BLKS_GETS_ PRE_ROWS   PRE_ROWS_L
 ---------- ---------- ------------------------------ ------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 
          1          128  EMP_PK                                                                 14            1          195         7996            0            0            0            0            0            0           14            1         7996          195            3            1            2            0            0 
Выбрана  1  строка.
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134450
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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К получишь.
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134556
_no_name_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Реально занимаемое место для индекса можно получить :
- analyze index ind_name validate structure
- проверить значение PCT_USED в таблице index_stats - это и будет процент реально занятого места от общего размера индекса.
...
Рейтинг: 0 / 0
В каком представлении содержиться реальный размер
    #32134647
Кас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем ОГРОМНОЕ СПАСИБО!
Сейчас все проверю.
Пока нашел как то что мне нужно вычислить используя dbms_unused...


2 Angel

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

: (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 = сТип;
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / В каком представлении содержиться реальный размер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]