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

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

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, назначенное этому пользователю? Это может показаться разумным, и, кстати, у моего темпера достаточно места ...

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

спасибо

1 Ответ

0 голосов
/ 13 сентября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...