0

sql新しいレポートのクエリを作成する必要があります。問題は、私が11をしなければならないことですLeft Outer Join!!! そうそう、これは悪い部分です。クエリ Oracle を実行すると、次のエラーが生成されます。

ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
01652. 00000 -  "unable to extend temp segment by %s in tablespace %s"
*Cause:    Failed to allocate an extent of the required number of blocks for
           a temporary segment in the tablespace indicated.
*Action:   Use ALTER TABLESPACE ADD DATAFILE statement to add one or more
           files to the tablespace indicated.

処理するレコードがたくさんあるため、このエラーがトリガーされると確信しています。私に役立つアドバイスはありますか?

ありがとう、ワラウド

4

3 に答える 3

2

レポートの結果は何らかの形で集計されていますか? その場合、クエリを複数の段階に分割し、単一のヒットではなく、中間結果を保存できる場合があります。クエリ自体を確認し、ドメインと要件の基本的な理解がなければ、さらに支援することは困難です。

于 2013-05-22T16:23:59.320 に答える
0

一時テーブルスペースの設定を確認してください。テーブルのソートまたはハッシュに必要な一時テーブルスペースは、通常、そのテーブルのセグメント サイズとほぼ同じです。次のようなクエリでそれらの数値を見つけます。

select bytes/1024/1024/1024 GB, dba_segments.*
from dba_segments
where segment_name = '<table_name>';

次に、使用可能な一時テーブルスペースと比較します。

select free_space/1024/1024/1024 GB, dba_temp_free_space.*
from dba_temp_free_space;

一時スペースよりも大きなテーブルをソートまたはハッシュしている場合、最も簡単な解決策はおそらくスペースを追加することです。

また、他のプロセスが大量の一時テーブルスペースを使用しているかどうかも確認してください。8K のブロック サイズを想定すると、次のようになります。

select blocks * 8 * 1024 /1024/1024 MB, v$sort_usage.*
from gv$sort_usage;
于 2013-05-22T18:14:00.547 に答える