0

Oracleで重いクエリを実行しました。しかし、1つのエラーが発生しています(テーブルスペースTEMPデータベースドライバーエラーで一時セグメントを128拡張できません)

表スペースを確認しましたが、TEMP 表スペースが見つかりません。以下は私が実行したクエリです。そして、私はすでにUSERテーブルスペースを増やしています。しかし、まだ同じ問題に直面しています。

SELECT * FROM DBA_DATA_FILES;

/home/oracle/oracle/oradata/ORCL/users01.dbf    4   USERS   32212254720 3932160 AVAILABLE   4   YES 34359721984 4194302 160 32211206144 3932032 ONLINE
/home/oracle/oracle/oradata/ORCL/undotbs01.dbf  3   UNDOTBS1    21474836480 2621440 AVAILABLE   3   YES 34359721984 4194302 640 21473787904 2621312 ONLINE
/home/oracle/oracle/oradata/ORCL/sysaux01.dbf   2   SYSAUX  1377828864  168192  AVAILABLE   2   YES 34359721984 4194302 1280    1376780288  168064  ONLINE
/home/oracle/oracle/oradata/ORCL/system01.dbf   1   SYSTEM  1073741824  131072  AVAILABLE   1   YES 34359721984 4194302 1280    1072693248  130944  SYSTEM
/home/oracle/oracle/oradata/ORCL/CSA_BILL_ITEM01.dbf    5   CSA_BILL_ITEM   32212254720 3932160 AVAILABLE   5   YES 32212254720 3932160 12800   32211206144 3932032 ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_BILL_ITEM_INDEX01.dbf  6   CSA_BILL_ITEM_INDEX 2147483648  262144  AVAILABLE   6   YES 2147483648  262144  3200    2146435072  262016  ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_BILL01.dbf 7   CSA_BILL    2147483648  262144  AVAILABLE   7   YES 2147483648  262144  12800   2146435072  262016  ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_BILL_INDEX01.dbf   8   CSA_BILL_INDEX  536870912   65536   AVAILABLE   8   YES 1073741824  131072  3200    535822336   65408   ONLINE
/home/oracle/oracle/oradata/ORCL/META_DATA01.dbf    9   META_DATA   536870912   65536   AVAILABLE   9   YES 1073741824  131072  3200    535822336   65408   ONLINE
/home/oracle/oracle/oradata/ORCL/META_INDEX01.dbf   10  META_INDEX  268435456   32768   AVAILABLE   10  YES 536870912   65536   640 267386880   32640   ONLINE
/home/oracle/oracle/oradata/ORCL/POWERCENTER01.dbf  11  POWERCENTER 2147483648  262144  AVAILABLE   11  YES 2147483648  262144  4096    2146435072  262016  ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_QOTA01.dbf 12  CSA_QOTA_TBSPACE    536870912   65536   AVAILABLE   12  YES 536870912   65536   4096    535822336   65408   ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_QOTA02.dbf 13  CSA_QOTA_TBSPACE    1610612736  196608  AVAILABLE   13  NO  0   0   0   1609564160  196480  ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_QOTA03.dbf 14  CSA_QOTA_TBSPACE    1073741824  131072  AVAILABLE   14  NO  0   0   0   1072693248  130944  ONLINE

この問題について私を助けてください。

4

1 に答える 1

6

一時表領域は、通常のデータ表領域とは異なる方法で管理されます。dba_temp_files代わりにクエリを実行することで、オペレーティング システム ファイルを確認できます。一時テーブルスペース ファイルのサイズを増やす方法、または新しいファイルを追加する方法については、ドキュメントを参照してください。

ただし、クエリが大量の一時スペースを使用している理由を調査し、それを削減できるかどうかを確認することをお勧めします。基本的な間違い (偶発的なクロス結合など) がある可能性があります。これは、必要以上に多くの一時を使用しており、おそらく必要以上に長く実行していることを意味します。何がうまくいかないかの手がかりについては、Explain Plan を参照してください。増やすTEMP必要があるかもしれませんが、このエラーが表示されたらすぐに自動的に行うべきではありません。

通常よりもはるかに多くの一時を必要とする単一のクエリがある場合の別のオプション (これは 1 回限り) は、新しい一時テーブルスペースを追加し、それをを介して操作中にユーザーに割り当て、alter user完了したら元に戻すことです。次に、新しい表領域を削除します。その後、余分なディスクは短時間だけ拘束されます。あなたの状況では実用的または賢明ではないかもしれませんが、念のため言及されています.


で定義された真の一時一時テーブルスペースcreate temporary tablespaceは、このように管理され、 dba_temp_files. 8i より前は通常のデータファイルがあり、アップグレードされ、一時テーブルスペースが新しいフォーマットで再作成されていないデータベースにその構成が残っている可能性があります。あなたのものは に表示されないため、明らかにそうではありませんdba_data_files

于 2013-01-29T08:54:58.680 に答える