Sql 临时表空间总是满的

Sql 临时表空间总是满的,sql,oracle9i,Sql,Oracle9i,我一直有这个问题,只是需要更多的信息错误如下 -1652-ORA-01652:无法在表空间“temp_表空间名称”中将temp段扩展128 现在我几乎每个月都需要增加临时表空间 目前每天午夜,系统运行存储过程将从2-3个表收集的数据插入1个表。在查询中,我使用“distinct”语句进行查询。我需要使用distinct,因为在此之前,即使表有主键,也会插入重复值 我的问题是: 1) “distinct”语法是否导致临时表空间已满 2) 如果是,那么我需要做什么来代替增加表空间?如果否,那么是什么

我一直有这个问题,只是需要更多的信息错误如下

-1652-ORA-01652:无法在表空间“temp_表空间名称”中将temp段扩展128 现在我几乎每个月都需要增加临时表空间

目前每天午夜,系统运行存储过程将从2-3个表收集的数据插入1个表。在查询中,我使用“distinct”语句进行查询。我需要使用distinct,因为在此之前,即使表有主键,也会插入重复值

我的问题是:

1) “distinct”语法是否导致临时表空间已满


2) 如果是,那么我需要做什么来代替增加表空间?如果否,那么是什么原因导致临时表空间总是满的?

在正常运行的数据库中,临时表空间应在一段时间后显示为“满”。
扩展数据块分配一次,然后由系统管理。而不是做那些 昂贵的“空间管理”(数据字典更新)操作,系统将 在TEMP中分配一个扩展数据块,然后保存它并自行管理它。这是正常的 这是预期的,并不表示您没有任何临时空间

有关更多信息,请参阅动态性能视图V$SORT\u用法和V$SORT\u段 关于这些临时段内的空间使用情况。V$SORT\u用法将告诉您
谁在使用什么。

在查询中使用distinct意味着-首先选择临时位置中的所有数据并过滤distinct,这将使用临时数据库空间。-通过选择此数据,您的流程在做什么?流程?你是说选择数据后会发生什么?如果是这样,数据将被插入到另一个表中,以便系统将其提取到批处理文件中。这太棒了!如果要在另一个表中插入记录,可以使用记录总数中的一批数据。首先选择计数,然后逐批执行插入活动。这将减少临时空间。