Классика баз данных - статьи

       

Как создать сжатую таблицу


Для создания сжатой таблицы используется ключевое слово COMPRESS в операторе CREATE TABLE. Ключевое слово COMPRESS требует от сервера Oracle, по возможности, хранить строки таблицы в сжатом виде. Ниже представлен пример оператора CREATE TABLE COMPRESS:

CREATE TABLE SALES_HISTORY_COMP ( PART_ID VARCHAR2(50) NOT NULL, STORE_ID VARCHAR2(50) NOT NULL, SALE_DATE DATE NOT NULL, QUANTITY NUMBER(10,2) NOT NULL ) COMPRESS;

Можно также использовать оператор ALTER TABLE для изменения атрибута сжатия существующей таблицы, как в следующем примере:

ALTER TABLE SALES_HISTORY_COMP COMPRESS;

Чтобы узнать, использовалось ли ключевое слово COMPRESS в определении таблицы, выполните запрос к представлению USER_TABLES словаря данных и проверьте значение столбца COMPRESSION, как в следующем примере:

SELECT TABLE_NAME, COMPRESSION FROM USER_TABLES;

TABLE_NAME COMPRESSION ------------------ ----------- SALES_HISTORY DISABLED SALES_HISTORY_COMP ENABLED

Атрибут COMPRESS также может быть задан на уровне табличного пространства, как в момент его создания (с помощью оператора CREATE TABLESPACE), так и в дальнейшем (с помощью оператора ALTER TABLESPACE). Атрибут COMPRESS наследуется аналогично параметрам хранения. При создании таблицы в табличном пространстве наследуется атрибут COMPRESS

этого табличного пространства. Чтобы определить, задан ли для табличного пространства атрибут COMPRESS, выполните запрос к представлению DBA_TABLESPACES словаря данных и проверьте значение столбца DEF_TAB_COMPRESSION, как в следующем примере:

SELECT TABLESPACE_NAME, DEF_TAB_COMPRESSION FROM DBA_TABLESPACES;

TABLESPACE_NAME DEF_TAB_COMPRESSION --------------- ------------------- DATA_TS_01 DISABLED INDEX_TS_01 DISABLED

Как и следовало ожидать, вы можете сжимать или не сжимать таблицу в табличном пространстве, независимо от значения COMPRESS, заданного на уровне табличного пространства.



Содержание раздела