【问题标题】:How to create a tablespace only for schema's LOBs in Oracle database如何仅为 Oracle 数据库中的模式 LOB 创建表空间
【发布时间】:2016-11-19 15:57:30
【问题描述】:

我有一个架构 S 链接到 Oracle 数据库中的默认表空间 T1

我想仅为链接到同一架构 S 的 LOB 创建另一个表空间 T2

有可能吗?我该怎么做?

【问题讨论】:

  • 您可以这样做,但您确定要这样做吗?你想解决什么问题?通常最好将所有对象放在同一个表空间中的模式中 - 没有性能差异,并且更易于管理。

标签: database oracle schema tablespace lob


【解决方案1】:

在 Oracle 中,您可以像为每个表一样为每个 LOB 列指定表空间。这意味着您可以为 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

【讨论】:

    【解决方案2】:

    是的,您可以,但是对于所有现有的和新的表,您应该手动编写 lob 表空间。同样的行为也适用于 lob 索引。怎么做见链接https://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_tables.htm#CIHEBABG

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      相关资源
      最近更新 更多