web-dev-qa-db-ja.com

既存のテーブルスペースのMAXSIZEを決定する方法

作成時にテーブルスペースに設定されたMAXSIZEを特定する必要があります(Oracle 10g)

明らかなものがないと思いますが、DBA_TABLESPACESの情報ではすぐにはわかりません。

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 
/

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

edit

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

  • ビッグファイルテーブルスペースには、最大約40億(232)ブロックを含むことができるデータファイルまたは一時ファイルが1つだけ含まれています。単一のデータファイルまたは一時ファイルの最大サイズは、32Kブロックのテーブルスペースでは128テラバイト(TB)、8Kブロックのテーブルスペースでは32TBです。
  • Smallfileテーブルスペースは、従来のOracleテーブルスペースで、1022のデータファイルまたは一時ファイルを含めることができ、それぞれに最大400万([2の累乗])ブロックを含めることができます。

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

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句のドキュメント で説明しています。

11
APC

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

したがって、DBA_DATA_FILESから適切な情報を取得できます。

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

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

DBA_TABLESPACESのMAX_SIZEは、テーブルスペース自体の最大サイズとは関係ありません。 Oracle documenation によると、

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

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

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;
5
Younes

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

0
Gerrit
select tablespace_name, round(sum(bytes)/1024/1024, 2) as free_space from dba_free_space group by tablespace_name;
0
k.honsali

Maxsizeは、dba_data_filesの属性です。

0