2016-07-16 2 views
0

У меня есть схема S, связанная с табличным пространством по умолчанию T1 в базе данных Oracle.Как создать табличное пространство только для больших объектов схемы в базе данных Oracle

Я хочу, чтобы создать другое табличное T2 только для LOBs, связанных с той же самой схеме S.

Возможно ли это? Как мне это сделать?

+0

Вы можете сделать это, но вы уверены, что хотите? Какую проблему ты пытаешься решить? Обычно лучше разместить все объекты в схеме в одном и том же табличном пространстве - разница в производительности отсутствует, и управлять ею проще. –

ответ

2

В Oracle вы можете указать табличное пространство для каждого столбца LOB, как и для каждой таблицы. Это означает, что вы можете создать другое табличное пространство (или табличные пространства) для ваших данных больших объектов, чем обычные данные таблицы. Довольно часто этот метод используется для хранения данных LOB на более дешевых устройствах хранения данных, чем стола:

CREATE TABLESPACE DATATBS1 DATAFILE 'datatbs1.dbf'; 

CREATE TABLESPACE LOBTBS1 DATAFILE 'lobtbs1.dbf'; 

CREATE TABLE T1 (id NUMBER, text CLOB) 
LOB (text) STORE AS SECUREFILE (TABLESPACE LOBTBS1) 
TABLESPACE DATATBS1; 

SELECT tablespace_name 
FROM user_lobs 
    WHERE table_name = 'T1' AND column_name = 'TEXT'; 

TABLESPACE_NAME 
------------------------------ 
LOBTBS1 

SELECT tablespace_name 
FROM user_tables 
    WHERE table_name = 'T1'; 

TABLESPACE_NAME 
------------------------------ 
DATATBS1 

Для получения дополнительной информации см LOB Storage Parameters в базе данных SecureFiles и Руководство разработчика больших объектов.

1

Да, вы можете, но для всех существующих и новых таблиц необходимо вручную написать табличное пространство таблицы. Такое же поведение наблюдается для индексов lob. Как это сделать ссылку см. Ссылку https://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_tables.htm#CIHEBABG

Смежные вопросы