bonsvr Asked: 2011-11-17 07:50:11 +0800 CST2011-11-17 07:50:11 +0800 CST 2011-11-17 07:50:11 +0800 CST 在临时表空间中创建索引 772 我正在尝试为相对较大的表(80M 行)创建索引。 首先我得到一个ORA-01652错误,然后我在 SO 中搜索并找到了一个相关的问题。 但是,尝试执行那里提到的步骤时,我得到了ORA-02195 : Attempt to create PERMANENT object in a TEMPORARY tablespace错误。 如果索引是永久对象,不能在临时表空间中创建,那我应该如何理解Oracle手册的这一部分? 谢谢。 oracle 1 个回答 Voted Best Answer Raihan 2011-11-17T09:51:55+08:002011-11-17T09:51:55+08:00 USERS默认情况下,在用户表空间中创建表和索引。默认情况下,oracle 使用临时表空间TEMP对磁盘上的大量数据进行排序。临时表空间通常用于处理连接、排序或创建索引。 由于默认表空间TEMP不足以创建大型索引,因此您的示例创建一个大型临时表空间ts_tmp仅用于创建索引,然后将其删除。 使用命令创建索引时CREATE UNIQUE INDEX ... TABLESPACE ...,不要ts_tmp 在TABLESPACE子句中使用。这会给你Attempt to create PERMANENT object in a TEMPORARY tablespace error。 要么不使用该TABLESPACE子句,那么将使用默认用户表空间。CREATE TABLESPACE或者给出使用命令创建的表空间名称。
USERS
默认情况下,在用户表空间中创建表和索引。默认情况下,oracle 使用临时表空间TEMP
对磁盘上的大量数据进行排序。临时表空间通常用于处理连接、排序或创建索引。由于默认表空间
TEMP
不足以创建大型索引,因此您的示例创建一个大型临时表空间ts_tmp
仅用于创建索引,然后将其删除。使用命令创建索引时
CREATE UNIQUE INDEX ... TABLESPACE ...
,不要ts_tmp
在TABLESPACE
子句中使用。这会给你Attempt to create PERMANENT object in a TEMPORARY tablespace error
。要么不使用该
TABLESPACE
子句,那么将使用默认用户表空间。CREATE TABLESPACE
或者给出使用命令创建的表空间名称。