11

表領域が作成されたときに設定されたものを判別する必要がありMAXSIZEます(Oracle 10g)

明らかな何かが欠けていると確信していますが、の情報では情報がすぐにはわかりませんDBA_TABLESPACES

4

5 に答える 5

11

11gでは、このクエリで答えが得られますが、10gを使用していることに気付きました。残念ながら、有用な列がありません。

select tablespace_name, max_size 
from dba_tablespaces
/

10gではあなたがしなければならないでしょう

select tablespace_name
       , initial_extent + (next_extent * (max_extents-1)) as calc_max_size
from dba_tablespaces 
/

これがデフォルトの最大サイズであることを忘れないでください。実際には、テーブルスペースに割り当てられたデータファイルのサイズによって制限されます。これは、この理論上の最大値よりはるかに小さい場合があります。

編集

@Paulのコメントは適切です。正解は、表領域の最大サイズは無意味で、実際にはほとんど架空の概念であると言うことだと思います。表領域のサイズは、実際にはそのデータファイルによって決定され、その潜在的な最大最大サイズは、割り当てることができるデータファイルの最大数によって決定されます。SQLリファレンスには、このトピックについて次のように書かれています 。

  • bigfile表領域には、最大約40億(232)ブロックを含むことができるデータファイルまたは一時ファイルが1つだけ含まれます。単一のデータファイルまたは一時ファイルの最大サイズは、32Kブロックの表領域の場合は128テラバイト(TB)、8Kブロックの表領域の場合は32TBです。
  • smallfileテーブルスペースは、従来のOracleテーブルスペースであり、1022個のデータファイルまたは一時ファイルを含めることができます。各テーブルスペースには、最大約400万([2の22の累乗])のブロックを含めることができます。

したがって、おそらくこれはより便利なクエリです...

select tablespace_name
       , count(*) as no_of_data_files
       , sum(maxblocks) as max_size
from dba_data_files
group by tablespace_name
/

...現在割り当てられているデータファイルにのみ適用されることに注意してください。

編集2

MAXSIZEは、表領域ではなくデータファイルに適用されます。そのため、MAXSIZEキーワードについては、CREATE TABLESPACEではなく 、filespec句のドキュメントで説明されています。

于 2010-03-02T15:09:14.380 に答える
5

それはすべて、データファイルが自動拡張可能かどうかによって異なります。

したがって、DBA_DATA_FILESから正しい情報を取得します。

  • AUTOEXTENSIBLEがYESに設定されている場合は、MAXBYTESの合計が必要です。

  • AUTOEXTENSIBLEがNOに設定されている場合は、BYTESの合計が必要です。

DBA_TABLESPACESのMAX_SIZEは、表領域自体の最大サイズとは何の関係もありません。オラクルの文書によると、それは

「セグメントのデフォルトの最大サイズ」

したがって、正しいクエリは次のとおりです。

select TABLESPACE_NAME, sum(decode(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES)) MAX_SIZE
from   DBA_DATA_FILES
group  by TABLESPACE_NAME;

これは11gでテストされていますが、10gでも機能するはずです。各表領域の最大サイズをバイト単位で示します。

同じことがTEMP表領域にも当てはまります。

select TABLESPACE_NAME, sum(decode(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES)) MAX_SIZE
from   DBA_TEMP_FILES
group  by TABLESPACE_NAME;
于 2013-11-06T14:46:39.787 に答える
0

Maxsizeはdba_data_filesの属性です

于 2010-03-02T15:06:53.403 に答える
0

dba_data_filesからtablespace_name、maxbytes /1024/1024MAX_SIZEを選択します。

于 2012-02-02T10:18:29.340 に答える
0
select tablespace_name, round(sum(bytes)/1024/1024, 2) as free_space from dba_free_space group by tablespace_name;
于 2013-10-11T14:40:23.763 に答える