Табличные пространства, используемые для создания материализованного представления?

Я пытаюсь создать представление как таковое:

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: невозможно создать НАЧАЛЬНЫЙ экстент для сегмента в табличном пространстве MySmallTS

Хорошо, теперь MySmallTS является по умолчанию ts для пользователя, которому я пытаюсь создать представление, и оно заполнено. Полное табличное пространство — это отдельная проблема, и с ней разбираются, но с какой стати Oracle пытается использовать его для этого представления, хотя я прямо указываю, где мне это нужно?

Более того, если я изменю запрос a и удалю group by, он будет работать, и создаст представление в правильном табличном пространстве.

Интересно, вся операция группировки, суммирования и прочего, не должна ли она использовать табличное пространство TEMP, назначенное для этого пользователя? Это казалось бы разумным, и, кстати, в моем темпе полно места...

Почему это так?

Благодарность


person filippo    schedule 13.09.2011    source источник


Ответы (1)


Основываясь на том факте, что это работает при удалении GROUP BY, я предполагаю, что MySmallTS также назначается в качестве временного табличного пространства по умолчанию для этого пользователя.

Создание промежуточного результата будет выполняться во временном табличном пространстве, и при использовании GROUP BY это становится слишком большим для MySmallTS.

person a_horse_with_no_name    schedule 13.09.2011
comment
Нет, не совсем.. Я дважды проверил это. У моего пользователя действительно есть правильное табличное пространство, установленное как временное (я имею в виду, отличное от MySmallTS). :( - person filippo; 13.09.2011