Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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
简单sql查询-无法扩展临时段错误_Sql_Oracle - Fatal编程技术网

简单sql查询-无法扩展临时段错误

简单sql查询-无法扩展临时段错误,sql,oracle,Sql,Oracle,我想在Oracle server上运行这样一个查询(我知道这没有意义,但a尝试使其尽可能简单): tableA和tableC有大约40k条记录,tableB有大约10k条记录 它运行5分钟,然后抛出错误 ORA-01652:无法扩展临时段 如果我在没有“C.tableC”的情况下执行它,它将在2秒钟内完成 有什么问题吗?我设法解决了这个问题。 需要使用gather\u table\u stats函数手动分析tableC。您的实际查询在where子句中的任何位置都没有tableC?在这里使用tab

我想在Oracle server上运行这样一个查询(我知道这没有意义,但a尝试使其尽可能简单):

tableA
tableC
有大约40k条记录,
tableB
有大约10k条记录

它运行5分钟,然后抛出错误

ORA-01652:无法扩展临时段

如果我在没有“C.tableC”的情况下执行它,它将在2秒钟内完成


有什么问题吗?

我设法解决了这个问题。
需要使用gather\u table\u stats函数手动分析tableC。

您的实际查询在
where
子句中的任何位置都没有
tableC
?在这里使用tableC有什么意义?另外,最好在tableA和tableB之间使用
内部联接
。我在WHERE子句中用tableC编辑了这个问题,但我认为如果没有它,它应该可以工作@Kaf不幸的是,由于其他原因,我无法使用内部联接。0_o否。不,您可以使用
内部联接
。如果where子句中有tableC,则会产生不同。如果你不这样做,你会得到一个笛卡尔连接。这可能就是结果如此巨大的原因。当您将tableC添加到where子句时,它是否发生了变化(顺便说一句:这是不使用隐式联接的一个很好的理由——您很容易错过联接条件)
select tableA.acolumn
from A.tableA, A.tableB, C.tableC
where tableA.acolumn = tableB.acolumn and tableA.cId = tableC.id