|
Программирование >> Oracle
22 segment type => INDEX, 23 total blocks => l total blocks, 24 total bytes => l total bytes, 25 unused blocks => l unused blocks, 26 unused bytes => l unused bytes, 27 IAST USED EXTENT FILE ID => l LastUsedExtFileId, 28 LAST USED EXTENT BLOCK ID => l LastOsedExtBlockId, 29 IAST USED BLOCK => l last used block) ; 30 31 dbms output.put line 32 ( IOT used to char(l total blocks-l unused blocks)); 33 end; 34 / Procedure created. Теперь создадим организованную по индексу таблицу, не используя сжатие: tkyte@TKYTE816> create table lot 2 (owner, object type, object name, 3 primary key(owner,object type,object name) 5 organization index 6 NOCOMPRESS 7 as 8 select owner, object type, object name from all objects 9 order by owner, object type, object name 10 / Table created. tkyte@TKYTE816> set serveroutput on tkyte@TKYTE816> exec show iot space(iot) ; IOT used 135 PL/SQL procedure successfully completed. Если вы проверяете эти примеры по ходу чтения, то скорее всего получите другое значение, не 135. Оно будет зависеть от размера блока и количества объектов в словаре данных. Можно, однако, предположить, что в следующем примере это значение будет меньше: tkyte@TKYTE816> create table iot 2 (owner, object type, object name, 3 primary key(owner,object type,object name) 5 organization index 6 compress 1 7 as 8 select owner, object type, object name from all objects 9 order by owner, object type, object name 10 / Table created. tkyte@TKYTE816> exec show iot space(iot); IOT used 119 PL/SQL procedure successfully completed. Итак, эта организованная по индексу таблица примерно на 12 процентов меньше первой; но ее можно еще сжать: tkyte@TKYTE816> create table iot 2 (owner, object type, object name, 3 primary key(owner,object type,object name) 5 organization index 6 compress 2 7 as 8 select owner, object type, object name from all objects 9 order by owner, object type, object name 10 / Table created. tkyte@TKYTE816> exec show iot space(iot ) ; IOT used 91 PL/SQL procedure successfully completed. Организованная по индексу таблица с параметром COMPRESS 2 примерно на треть меньше, чем исходная, несжатая. У вас может получиться другое значение, но результаты бывают просто фантастические. Этот пример дает интересную информацию о таблицах, организованных по индексу. Это - таблицы, но только по названию. Их сегмент - полноправный сегмент индекса. Чтобы продемонстрировать использование пространства, мне пришлось получить по имени таблицы, организованной по индексу, соответствующее имя базового индекса. В этих примерах я позволил системе автоматически сгенерировать имя индекса; по умолчанию получается имя SYS IOT TOP <идентификатор объекта>, где идентифи-катор объекга - внутренний идентификатор, присвоенный таблице. Если не хочется, чтобы эти автоматически сгенерированные имена засоряли словарь данных, можно задать имя явно: tkyte@TKYTE816> create table iot 2 (owner, object type, object name, 3 constraint iot pk primary key(owner,object type,object name) 5 organization index 6 compress 2 7 as 8 select owner, object type, object name from all objects Table created. Обычно считается правильным вот так, явно, именовать создаваемые объекты. Обычно такие имена намного информативнее, чем имена вида SYS IOT TOP 1234. Я пока отложу описание параметра PCHRESHOLD, поскольку он связан со следующими двумя параметрами таблиц, организованных по индексу, - OVERFLOW и INCLUDING. Если посмотреть на текст полных SQL-операторов для таблиц Т2 и ТЗ, можно увидеть следующее: CREATE TABLE TKYTE . Т2 ( X NUMBER(*,0) , Y VARCHAR2(25) , Z DATE, PRIMARY KEY ( X ) ENABLE ORGANIZATION INDEX NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING STORAGE ( INITIAL 32768 NEXT 32768 MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER POOL DEFAULT TABLESPACE TOOLS PCTTHRESHOLD 50 OVERFLOW PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING STORAGE ( INITIAL 32768 NEXT 32768 MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER POOL DEFAULT ) TABLESPACE TOOLS ; CREATE TABLE TKYTE . T3 ( X NUMBER(*,0), Y VARCHAR2 (25) , Z DATE, PRIMARY KEY ( X ) ENABLE ORGANIZATION INDEX NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING STORAGE (INITIAL 32768 NEXT 32768 MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER POOL DEFAULT ) TABLESPACE TOOLS PCTTHRESHOLD 50
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |