我正在尝试创建一个视图:
CREATE MATERIALIZED ReasonableSizedView
TABLESPACE MyMediumTS
AS
select COUNT(something) AS allsomethings,
thetype AS thing,
status
from SomeMassiveTable
where
thetype = 'x'
AND status IN (0,1,2,3)
GROUP BY
thetype,
status;
我得到的只是一个错误:ORA-01658
:无法为表空间中的段创建INITIAL范围 MySmallTS
好的,现在,MySmallTS
是我正在尝试创建视图的用户的默认 ts - 它已满。一个完整的表空间的东西,是一个问题分开,并正在处理,但为什么甲骨文试图使用它的这个视图,即使我明确告诉我想要它?
此外,如果我更改查询并删除group by
,它将起作用,并且它将在正确的表空间中创建视图。
我想,分组和求和的整个操作和东西,不应该使用为该用户分配的TEMP
表空间吗?这似乎是合理的,顺便说一下,我的温度有足够的空间......
为什么会这样?
感谢
答案 0 :(得分:0)
基于删除GROUP BY时它的工作原理,我的猜测是MySmallTS也被指定为该用户的默认临时表空间。
构建中间结果将在临时表空间中完成,当使用GROUP BY时,这对于MySmallTS来说太大了