表空间用于创建物化视图?

时间:2011-09-13 10:28:05

标签: oracle materialized-views tablespace

我正在尝试创建一个视图:

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表空间吗?这似乎是合理的,顺便说一下,我的温度有足够的空间......

为什么会这样?

感谢

1 个答案:

答案 0 :(得分:0)

基于删除GROUP BY时它的工作原理,我的猜测是MySmallTS也被指定为该用户的默认临时表空间。

构建中间结果将在临时表空间中完成,当使用GROUP BY时,这对于MySmallTS来说太大了