3

私はそのようなビューを作成しようとしています:

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;

そして、私が得るのはエラーだけです::テーブルスペースMySmallTSORA-01658のセグメントのINITIALエクステントを作成できません

さて、今、私がビューを作成しようとしているユーザーMySmallTSデフォルトのtsです-そしてそれはいっぱいです。表スペースがいっぱいであるということは別の問題であり、対処されていますが、どこに欲しいかを明示的に指示しているのに、なぜOracleはこのビューにそれを使用しようとしているのでしょうか。

さらに、クエリaを変更してgroup by'sを削除すると、それが機能し、正しい表スペースにビューが作成されます

TEMPグループ化や合計などの操作全体で、そのユーザーに割り当てられたテーブルスペースを使用するべきではないでしょうか。それは理にかなっているように思えますが、ちなみに、私の臨時雇用者には十分なスペースがあります...

どうしてこんなことに?

ありがとう

4

1 に答える 1

0

GROUP BY を削除すると機能するという事実に基づいて、MySmallTS はそのユーザーのデフォルトの一時テーブルスペースとしても割り当てられていると思います。

中間結果の構築は一時テーブルスペースで行われ、GROUP BY を使用すると、これは MySmallTS には大きすぎます

于 2011-09-13T10:34:47.590 に答える