向表添加约束的SQL错误,ORA-01652 - 无法扩展临时段

时间:2012-03-23 18:19:03

标签: sql oracle large-data-volumes

我通过append提示加载了数百万行的表格。

现在我重新开启约束,我得到以下内容:

2012-03-23 01:08:53,065错误[SQL] [主要]:Error in executing SQL

alter table summarydata add constraint table_pk primary key (a, b, c, d, e, f)

java.sql.SQLException: ORA-30032: the suspended (resumable) statement has timed out ORA-01652: unable to extend temp segment by 128 in tablespace MY_TEMP_TABLESPACE

有没有最佳做法可以避免这种情况?我正在添加更多的数据文件,但为什么这会成为一个问题呢?

2 个答案:

答案 0 :(得分:2)

该错误与 temporay 表空间有关,而与包含表和/或主键的数据表空间无关。您需要增加MY_TEMP_TABLESPACE的大小,以便它有足够的空间进行比较,如@Lamak所示。

如果您不知道需要多大空间,那么您可以在@DCookie上打开AUTOEXTEND,如果它已经打开(对于temp,而不是数据,表空间!),请检查{ {1}}设置并在必要时增加。在某些平台上,数据文件的最大大小(或临时表空间,有希望是临时文件)受到约束,因此您可能需要添加其他临时文件。

如果这是一次性任务,并且您不希望temp保持较大,那么之后可以缩小它,但您也可以选择:创建一个新的大型临时表空间;修改用户,以便用它代替;建立约束;将用户修改回原始临时区域;删除新的大临时表空间。

答案 1 :(得分:0)

您无法为表空间启用AUTOEXTEND的任何原因?