Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 如何修复ora-01652_Oracle_Temp_Segment - Fatal编程技术网

Oracle 如何修复ora-01652

Oracle 如何修复ora-01652,oracle,temp,segment,Oracle,Temp,Segment,我需要运行一个create table查询,每次超过一个半小时,它都会显示错误消息,如ora_01652:无法在表空间xyz中将temp段扩展8192,如何修复它 您的磁盘已满(或几乎满)或您没有扩展相关表空间的权限。您的磁盘已满(或几乎满)或您没有扩展相关表空间的权限。首先,您可能希望更改会话集可恢复\u超时=86400。这将暂停查询,而不是让它简单地失败,让您有时间在查询发生时查看情况。正如@davek提到的,您可能需要在某处添加空间。你需要弄清楚它为什么占用这么多空间 临时表空间主要用于排

我需要运行一个create table查询,每次超过一个半小时,它都会显示错误消息,如ora_01652:无法在表空间xyz中将temp段扩展8192,如何修复它

您的磁盘已满(或几乎满)或您没有扩展相关表空间的权限。

您的磁盘已满(或几乎满)或您没有扩展相关表空间的权限。

首先,您可能希望
更改会话集可恢复\u超时=86400
。这将暂停查询,而不是让它简单地失败,让您有时间在查询发生时查看情况。正如@davek提到的,您可能需要在某处添加空间。你需要弄清楚它为什么占用这么多空间

临时表空间主要用于排序和散列数据。例如,如果要对50GB表进行排序或哈希连接,则需要大约50GB的临时表空间。正如@tbone所建议的,一个非常糟糕的查询或执行计划可能会有一个交叉连接,试图创建一个不适合任何磁盘的大量结果集。确保连接正确,执行计划看起来正常。需要查找的内容有
合并联接(笛卡尔)
,或者可能有一些过滤器是在哈希或排序之后而不是之前应用的。如果计划不好,重新收集统计数据通常是良好的第一步


如果查询和计划都正常,但是您没有足够的空间,那么您需要以某种方式分解查询。这可以是多个插入,而不是单个CTA。分解查询通常不是一个好主意,但在一些资源稀缺的罕见情况下是必要的。或者,您可能希望查看使用以减少所需的空间量。

首先,您可能希望
更改会话设置可恢复\u timeout=86400
。这将暂停查询,而不是让它简单地失败,让您有时间在查询发生时查看情况。正如@davek提到的,您可能需要在某处添加空间。你需要弄清楚它为什么占用这么多空间

临时表空间主要用于排序和散列数据。例如,如果要对50GB表进行排序或哈希连接,则需要大约50GB的临时表空间。正如@tbone所建议的,一个非常糟糕的查询或执行计划可能会有一个交叉连接,试图创建一个不适合任何磁盘的大量结果集。确保连接正确,执行计划看起来正常。需要查找的内容有
合并联接(笛卡尔)
,或者可能有一些过滤器是在哈希或排序之后而不是之前应用的。如果计划不好,重新收集统计数据通常是良好的第一步


如果查询和计划都正常,但是您没有足够的空间,那么您需要以某种方式分解查询。这可以是多个插入,而不是单个CTA。分解查询通常不是一个好主意,但在一些资源稀缺的罕见情况下是必要的。或者,您可能希望查看使用以减少所需的空间量。

还要检查ctas语句以确保连接正确(您真的希望创建一个大表吗?如果是这样,您应该提前与DBA合作)。另外,我假设您没有试图将其放在用户或默认表空间中,也要检查您的ctas语句以确保连接正确(您真的希望创建一个巨大的表吗?如果是这样,您应该提前与DBA合作)。另外,我假设您没有试图将其放入用户或默认表空间